首页
论坛
电子技术基础
模拟技术
可编程器件
嵌入式系统与MCU
工程师职场
最新帖子
问答
版主申请
每月抽奖
商城免费换礼
社区有奖活动
博客
下载
评测
视频
文库
芯语
资源
2024国际航空电子大会
2024国际 AIoT 生态发展大会
3D IC 设计和Chiplet资料下载
车载总线测试和解码方案
新能源汽车三电测试技术中心
在线研讨会
EE直播间
小测验
白皮书
行业及技术活动
杂志免费订阅
免费在线工具
厂商资源中心
论坛
博文
电子工程专辑
电子技术设计
国际电子商情
资料
白皮书
研讨会
芯语
文库
登录|注册
登录
最新发表
推荐阅读
明星博主
原创博文
年度排行
博文排行
博文评论
FPGA/CPLD
MCU/ 嵌入式
模拟
电源/新能源
测试测量
通信
智能手机
处理器与DSP
PCB
汽车电子
消费电子
智能硬件
物联网
软件与OS
采购与分销
供应链管理
工程师职场
EDA/ IP/ 设计与制造
无人机
机器人/ AI
医疗电子
工业电子
管理
写博文
雁塔菜农
修改
文章:
1274
阅读:
4840504
评论:
674
赞:
8194
俺是农民俺怕谁???
好友
私信
个人主页
俺是农民俺怕谁???
文章
1274
原创
0
阅读
4840504
评论
674
赞
8194
原创
单总线数据发送“零耗时CRC检测”算法的软件实现
2007-1-6 00:41
4269
8
8
分类:
MCU/ 嵌入式
单总线数据发送“零耗时CRC检测”算法的软件实现(灌水作)-(精)
雁塔菜农 发表于 2005-5-3 3:51:00
返回的hotpower的个人主页
hotpower 发表于 11/25/2003 2:23:22 PM 侃单片机 ←返回版面
;单总线数据发送“零耗时CRC检测”算法的软件实现(灌水作)
;------------------------------------------------------------------
;看“刀客”如何将HotPower“斩立决”的程度,再决定是否发
;单总线数据接收“零耗时CRC检测”算法的软件实现(灌水作)
;当然,“死人”是不会发言的,更不可能灌水了。
;让HotPower的文章中,不出现“漏水”现象是不可能的,也是万万不能的。
;不搞笑的论坛——永远是“死水一潭”。。。。。。。。。。。。。。。。
;否则,HotPower“到此一游”不就变成“悼词一忧”了吗???
;“笑比哭好”,“刀客收剑”才能“立地成佛”呀。。。
;------------------------------------------------------------------
BBCOUT BIT INT0;发送数据管脚定义
BBCIN BIT INT1;接收数据管脚定义
;-------单总线1字节数据发送子程序-------------------------------
BBCOUTPROC:
;--------------------------------------------------------------
;算法: 动态右移CRC8算法(经典是静态CRC8,非典是动态CRC8)
;本算法的最大优点是在发送期间,实时进行CRC运算。(“零耗时”)
;不会出现“作弊”现象,主从设备都是同时收到CRC运算结果!!!
;通讯速率可达16.3KBPS到32KBPS(51主频为11.0592MHz时)
;本算法与经典的CRC算法最大的不同点:
;经典CRC8是以字节为单位的,而非典的CRC8则是以位为单位的。
;参见HotPower在EMC的主题“群魔乱舞的CRC...”
;--------------------------------------------------------------
;入口:
; CRC0 主设备发送实时CRC码
; CRC1 主设备发送线路CRC码
; ACC 发送数据
;出口:
; ACC=0 一字节数据发送成功
;--------------------------------------------------------------
MOV R2,#08H;每次发送8位
BBCOUTPROC_LOOP:
;-------主设备发送同步脉冲---------------------------------
CLR BBCOUT;发送同步脉冲(低电平)
;----------------------------------------------------------
RRC A;取发送数据位DX
;-------BBC总线为双向电路,自发自收,用于总线测试------------
JB BBCIN,$;等待收到同步脉冲
;-------主设备发送1位数据----------------------------------
MOV BBCOUT,C;发送数据位DX
;-------“零耗时”CRC运算----------------------------------
MOV R7,A;暂存移位后的数据
RLC A;还原移位前的数据
XRL A,CRC0;比较移位前数据和实时CRC码的最低位
RRC A;得到比较结果位CY
MOV A,CRC0;取实时CRC码
JNC BBCOUTPROC_NEXT0;比较结果位相同,不取反
;-------8位右移CRC“权”X^8+X^5+X^4+1-----------------------
XRL A,#18H;取反ACC4,ACC3
BBCOUTPROC_NEXT0:
RRC A;8位右移CRC算法,ACC右移一位
MOV CRC0,A;得到本次的实时CRC码
MOV A,B;取回收数据
;-------释放总线,“零耗时”CRC运算刚好结束------------------
SETB BBCOUT;由于本系统传输时延较大,故将此句提前
;-------主设备也在45uS处(左右)采样数据-----------------------
;目的是检测线路上传输的CRC是否正确,模拟从设备接收的CRC结果
;由于系统约定的主从设备的收发硬件电路相同,当总线有人“捣乱”
;时,主设备的“刀客”立即就会发现,“爱国者导弹”就可立即升空
;拦截,以保证通讯线路的“畅通无阻”,“教主万寿无疆”。。。
;这样,主从设备都可同时发现目标,不需应答就可“先斩后奏”
;哈哈,“生命诚可贵,灌水价更高。”
;“砍头不要紧,只要主义真。杀了我一个,自有后来人”!
;------------------------------------------------------------
MOV C,BBCIN;回收的线路输出的数据
;-------计算主设备输出的CRC----------------------------------
RRC A
MOV B,A;保存回收数据(为何不将HotPower放入回收站)
RL A;还原移位前的数据,但不破坏CY
XRL A,CRC1;比较移位前回收数据和线路CRC码的最低位
RRC A
MOV A,CRC1
JNC BBCOUTPROC_NEXT1;比较结果位相同,不取反
;-------8位右移CRC“权”X^8+X^5+X^4+1-----------------------
XRL A,#18H;取反ACC4,ACC3
BBCOUTPROC_NEXT1:
RRC A
MOV CRC1,A;保存
;-------“零耗时”CRC运算结束---------------------------------
;所谓“零耗时”,并非不耗时。
;主要是在“刀客”行刑前,再为人民做些好事,不想“虚度光阴”
MOV A,R7;恢复移位后的数据
;-------传输时延较小时,释放总线命令可放与此处----------------
; SETB BBCOUT;由于本系统传输时延较大,故将此句提前
;-------------------------------------------------------------
JNB BBCIN,$;等待释放总线
DJNZ R2,BBCOUTPROC_LOOP;8位数据未发完,继续
;-------检测主设备发送数据是否正常----------------------------
;“刀客”在此判断,若CRC0<>CRC1,可以“斩立决”,毫不留情
;在此下手,HotPower心服口服。绝不说半个“不”字!!!
;在此封帖,“群魔乱舞单总线”就会开出“鲜花”来。
MOV A,CRC0
XRL A,CRC1
RET;退出子程序,HotPower要下线了,拜拜了您啦,哈哈
;本文纯属搞笑,有得罪之处,请见谅。
系统注:本文被sparkstar加精.
相关帖子>>>:
单总线数据发送“零耗时CRC检测”算法的软件实现(灌水作)-(精)
最好有个什么具体的实例看看就好!(0字)51新手[6次]2004-2-12 2:24:40
当时版主想杀我,所以只发表了发送部分,并特意起名“灌水作”。想气气他!所以,未有接收部分。。。(0字)hotpower[6次]2004-2-12 2:25:30
hotpower的文章不错,回来仔细看看。(10字)洛克[10次]2004-2-12 2:27:46
我也学学。
阅读全文
(700)
|
回复(0)
|
引用通告
(4)
|
编辑
上一篇:
GAL16V8反汇编源程序(原创) ——上部-(精)
下一篇:
96键演示程序-(精)(33502字)hotpower2004-2-12 1:55:20[106次
写原创有奖励!2024面包板原创奖励正在进行中
点赞(
8
)
收藏
分享到:
上一篇:
“抢占式多主多从”单总线冲突裁决方案
下一篇:
LED条屏英汉点阵混用及点阵队列嵌入命令编码技术
PARTNER CONTENT
换一换>
更多>
新蓝牙6.0协议扩展应用范围
Silicon Labs(芯科科技)蓝牙产品经理Parker Dorris
2024-12-16
概伦电子:以开放心态共绘EDA产业新蓝图
概伦电子
2024-12-30
SK海力士开发出适用于AI数据中心的高容量固态硬盘‘PS1012 U.2’
SK海力士
2024-12-18
SK海力士将在CES2025亮相‘全方位面向AI的存储器供应商’的新蓝图
SK海力士
2025-01-03
新一代MCU向着边缘AI和实时控制发展
赵明灿
2024-12-11
文章评论
(
0
条评论)
登录
后参与讨论
您需要登录后才可以评论
登录
|
立即注册
发布
雁塔菜农
修改
文章:
1274
阅读:
4840504
评论:
674
赞:
8194
俺是农民俺怕谁???
好友
私信
个人主页
俺是农民俺怕谁???
文章
1274
原创
0
阅读
4840504
评论
674
赞
8194
最新评论
更多
写的好,学习和参考
开发工匠 ...
评论博文
2025-1-6
软硬件推波助澜,其效能对影像质量的考验又 ...
中间加个电压转换芯片就行了,简单的很了,中间加个电压转换芯片就行了,简单的很了,
ALICEWANG
评论博文
2025-1-6
AD9218子板在新处理板上表现的问题 ...
舍不得删掉的短信里,藏着最珍贵的记忆 人民日报微信公号 呵呵,扔了硬的,扔软的。 是啊,珍贵就在于对己而言是独一无二 ...
自做自受 ...
评论博文
2025-1-5
拆不完,不拆了,扔扔扔
最新
博文
技术篇:如何使用NTP同步时间? ...
Matter 标准:破生态枷锁,启家居智能 ...
在多电源系统中,如何配置电源滤波器 ...
资料下载
本周热帖
Processing-processing3.5.4
ESP32TFT常用字体库.zip
自动增益控制放大器设计与实现 ...
无线传能充电器设计与实现论文 ...
基于单片机自动电阻测试仪设计论文 ...
最新资讯
芯语最新
亚马逊云科技2024 re:Invent:构建核 ...
精密双极Dpot变阻器合成存在的致命问 ...
全自动手术机器人出现,缝合速度比医 ...
AI需求强劲增长,富士康第四季度营收 ...
又有11家中企被纳入实体清单,涉及光 ...
高端CMOS图像传感器公司创视半导体完 ...
高响应度、CMOS兼容型近红外锗PIN光电 ...
脑机接口公司PrecisionNeuroscience完 ...
杜威发布新一代I²C数字式MEMS微差压 ...
数字化:全场景激光雷达的最后一块拼 ...
EE直播间
更多
精密半导体参数测试解决方案
直播时间: 01月08日 10:00
在线研讨会
更多
多路有光·精准不凡——KSW-SGM01模拟信号源发布会
重塑机器人未来:揭秘创新芯片解决方案的颠覆力量
迈来芯Triaxis® 3D磁传感器:汽车安全应用的优选方案
适用于安全连接的新一代PIC32CK SG/GC系列单片机
热门
推荐
【TI资料】专为高压系统设计的新型MCU
【应用手册】TI 全新MCU及C29内核的能源设施应用方案
【TI资料】基于新型C29内核的MCU技术资料
【免注册下载】创新MCU提升高压系统的实时性能
我要评论
0
8
分享到微信
分享到微博
分享到QQ
点击右上角,分享到朋友圈
我知道啦
请使用浏览器分享功能
我知道啦
关闭
站长推荐
/3
工程师写总结,送示波器、稳压电源、螺丝刀!
分享你的:职业生涯中故事、2024年年终总结、工作中的小故事,丰富多样的礼品等你哦!
面包板社区有奖活动汇总楼
1. DIY赢大奖!2. 写原创,有奖励!3.参与话题,奖励E币!4. 免费申领:开发板试用、书籍试读...
电子工程师DIY来分享,赢大疆无人机、小米手机、NAS存储、万用表 ...
展示您的 DIY 电子设计作品,社区将有丰富奖励送给您!
首页
论坛
电子技术基础
模拟技术
可编程器件
嵌入式系统与MCU
工程师职场
最新帖子
问答
版主申请
每月抽奖
商城免费换礼
社区有奖活动
博客
下载
评测
视频
文库
芯语
资源
2024国际航空电子大会
2024国际 AIoT 生态发展大会
3D IC 设计和Chiplet资料下载
车载总线测试和解码方案
新能源汽车三电测试技术中心
在线研讨会
EE直播间
小测验
白皮书
行业及技术活动
杂志免费订阅
免费在线工具
厂商资源中心
帖子
博文
返回顶部
×
文章评论(0条评论)
登录后参与讨论