打印

请问一个UART停止位和奇偶校验位的问题

[复制链接]
11812|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
已注册|  楼主 | 2010-2-22 14:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如果一个芯片的UART只提供一个停止位,但我为了和别的设备保持兼容,必须搞出两个停止位出来,我能不能通过把这个芯片的奇偶校验位的值设为1来实现?!

这个芯片的奇偶校验位不是芯片计算的,是由写程序的人自己用代码计算出后添加到某个寄存器的某个位置上的,所以可以完全可以手工固定的把它设置为1

我查看了UART的电平格式,空闲状态为高电平,开始位为0,然后发送8个数据位,然后是奇偶校验位,停止位为高电平,所以我想把奇偶校验位强制设置为1是不是就可以实现两位停止位的效果了把?!

而且这样的话,另一方的格式是开始位+8数据位+停止位,即使没有奇偶校验位也不会导致通信接受错误的把,因为奇偶校验位被接受方当成了停止位,停止位被当成了空闲状态,也不会有事的把?!

相关帖子

沙发
wdm| | 2010-2-22 15:38 | 只看该作者
楼上在做MODBUS吗?
具体方法和你用的单片机有关,PIC单片机上有一个九位方式。

使用特权

评论回复
板凳
已注册|  楼主 | 2010-2-22 16:13 | 只看该作者
就是MODBUS

使用特权

评论回复
地板
已注册|  楼主 | 2010-2-22 16:16 | 只看该作者
就是PIC,PIC只有1个停止位,那个第9位是奇偶校验位,但要连接目标的协议格式是:1个开始位+8位数据位+2位停止位,所以能不能把奇偶校验位强制设置为1当成是两个停止位使用呢?

使用特权

评论回复
5
NE5532| | 2010-2-22 20:05 | 只看该作者
理论上是可以的,只要你软件处理一下就可以了。

使用特权

评论回复
6
已注册|  楼主 | 2010-2-23 09:18 | 只看该作者
理论上是可以的,只要你软件处理一下就可以了。
NE5532 发表于 2010-2-22 20:05


呵呵,请问软件上处理指什么?指发送的时用代码把校验位一直设置为1 ?

对于接受方来说,个人认为,‘1个开始位+8个数据位+1个停止位’和‘1个开始位+8个数据位+2个停止位’,这两种方式对于接受方没有什么要处理的?!

使用特权

评论回复
7
lxl_0598| | 2010-2-23 09:32 | 只看该作者
可以
数据格式 起始位(逻辑0,1位)+数据位(8位)+停止位(逻辑1,2位)
用PIC UART中9位数据格式同时启用地址匹配检测功能,(当检测到D8为1时,接收数据,否则丢弃;这样刚好匹配两位停止位中的第一位,剩下的一位停止位由PIC硬件检测),另外PIC的奇偶校验是由软件实现。

使用特权

评论回复
8
wdm| | 2010-2-23 10:57 | 只看该作者
我所了解的MODBUS和PIC
MODBUS的国际标准中只有11位方式,即:1个开始位+8位数据位+2位停止位,或者1个开始位+8位数据位+1位奇偶校验+1位停止位。但在现场应用和有几个PLC厂家中都有10位方式,即:1个开始位+8个数据位+1个停止位。向他们咨询过,没得到答案。MODBUS中的地址是靠协议来区分的,我个人认为不能启用地址匹配检测功能。
PIC的第9位可为0和1,可用软件处理。MODBUS中的3.5个字节时间可用定时器来实现,但是1.5个字节时间要实现可呢还是有点困难。要完全实现MODBUS要占用很多硬件资源。我看国内的许多厂家只是部分兼容。大家可以参考GB/T19582-2008这份标准。我也在做,希望大家一起讨论。

使用特权

评论回复
9
yewuyi| | 2010-2-23 11:28 | 只看该作者
既然3.5个字节可以用定时器做,为什么1.5个字节实现就需要困难了呢?

使用同一个定时器不可以了吗?

MODBUS要求的是>=3.5个字节,你完全可以取4个字节啊。

使用特权

评论回复
10
mohanwei| | 2010-2-23 11:36 | 只看该作者
很简单,逐个字节发,发完一个字节延时一段时间,多少个停止位都出来了……

使用特权

评论回复
11
cys_a| | 2010-2-23 11:43 | 只看该作者
当然可以

使用特权

评论回复
12
NE5532| | 2010-2-23 21:12 | 只看该作者
软件处理就是说你不管啥情况,都把那个位发送1就是了。

使用特权

评论回复
13
chunyang| | 2010-2-23 23:58 | 只看该作者
即使芯片/MCU不支持楼主想要的格式也行,在两字节数据间插入一小段延时即可。

使用特权

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

本版积分规则

3

主题

61

帖子

0

粉丝