打印
[技术问答]

有没有带奇偶校验方式的通信DEMO CODE?

[复制链接]
834|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
taobaofarmer|  楼主 | 2019-6-28 13:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
赛元MCU3| | 2019-6-28 19:34 | 只看该作者

使用特权

评论回复
板凳
taobaofarmer|  楼主 | 2019-6-29 13:03 | 只看该作者
经过实验,在11位模式下,RB8为接收数据的第9位,根本不好使

使用特权

评论回复
地板
taobaofarmer|  楼主 | 2019-6-29 13:04 | 只看该作者
经过实验,在11位模式下,RB8为接收数据的第9位,根本不好使

使用特权

评论回复
5
knk| | 2019-7-1 09:15 | 只看该作者
RB8一般是做为一帧数据的数据头使用的吧,发数据的时候每帧数据的第一个字节发TB8,其它数据不发TB8,
接收的那边一收到RB8就知道是一帧数据要来了,已收到一帧数据的第一个字节。

使用特权

评论回复
6
shi864698| | 2020-6-11 07:11 | 只看该作者
经过实验,赛元单片机不支持奇偶校验

使用特权

评论回复
7
赛元MCU3| | 2020-6-11 10:43 | 只看该作者
shi864698 发表于 2020-6-11 07:11
经过实验,赛元单片机不支持奇偶校验

你好,赛元的UART没有直接的奇偶校验功能,但是有可编程第9位,可以通过可编程第9位来实现奇偶校验功能,如果只是需要简单的奇偶校验功能软件实现起来还是比较简单的,如果有多机通信,每个MCU的奇偶检验方式不一样,芯片要实时纠错,实时根据接收到的数据判断是奇校验还是偶校验,然后判断数据的正确性,这样用软件的方法实现相对比较复杂,但是也不是不能实现,主要是会受到MCU处理速度和软件逻辑复杂度的限制,会限制通信的速度,这是软件实现的缺点,不如硬件来的方便;但是我们也不是闭门造车,目前市场上需求奇偶校验功能的真不多,很多MCU品牌也没有这样的功能,大多和我们一样都是可编程第9位,可编程第9位可以由用户来决定实际的功能,可以比较方便的实现简单的奇偶校验功能,另外也可以用来做地址帧的检测或者是楼上说的帧头的检测用来区分是地址位(或者是帧头)和数据位。

使用特权

评论回复
8
taobaofarmer|  楼主 | 2020-6-11 12:07 | 只看该作者
具有可编程第9位功能的都是8051架构,因为8051核早就没有版权费了,所以现在很多国产MCU制造商都在用这个免费核来推出自己的产品,因为内核的限制,如果修改内核增加硬件识别校验位的功能,那是非常复杂的事情,所以所有的8051厂商都没有做这件事儿,但是只要客户有奇偶校验位的需求,就不会再用这种MCU,另外一个KEIL这个环境实在是垃圾,但IAR FOR 8051厂家基本不予支持,所以别无选择只能用KEIL,KEIL有时候会莫名的崩溃退出,有时候复位之后不知道跳转到哪去了,单步 跨步有时候乱跑。。。。。。我还是在IAR下开发STM8舒服,完全可控,让IDE干啥就干啥

使用特权

评论回复
9
slxliuxing8| | 2020-6-11 15:58 | 只看该作者
      可以在UART通信主从两端根据奇偶校验做个同样的256字节的表(用数据直接查校验结果), 然后用发送数据查表写入TB8,接收端用收到的数据查表与RB8比较进行校验,这样相对计算来说对通信速度影响比较小。
   

使用特权

评论回复
10
xys9190| | 2020-6-18 22:14 | 只看该作者
你自己做一个软件计算奇偶校验位的状态,把标志加到发送帧里面,丛机接收后再做一次计算,然后核对校验位就行
项目合作:1866532219

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

71

主题

460

帖子

3

粉丝