串口问题(100分)

  • 主题发起人 主题发起人 GWW
  • 开始时间 开始时间
G

GWW

Unregistered / Unconfirmed
GUEST, unregistred user!

一串口设备,要求11位通信, 1位起始,8位数据,1位效验,1位停止. 现此

设备效验位要求固定为1.不知如何实现。

请问那位高手能解析一下 DCB 设置项 Parity 取值的详细意义,

(none,odd,even,mark,space) 特别是其中的 mark,space 特别不明白。

 
8位的数据位好象一般都会忽略校验位的, 因为没有地方存放校验位. ^_^

NONE: 不校验, 就是没有校验位
ODD: 奇校验, 就是说各数据bit加上校验bit, 值是奇数
EVEN: 偶校验, 就是说各数据bit加上校验bit, 值是偶数
MARK: 标记校验, 即校验位始终为1
SPACE:空校验, 即校验位始终为0

比如: 7位数据位, 对于各种校验方法,
0100101 1011010
NONE: 0100101 1011010 (保持数据不变)
ODD: 01001010 10110101
EVEN: 01001011 10110100
MASK: 01001011 10110101
SPACE: 01001010 10110100

明白了吗? ^_^
 

8位数据位应一样有校验位,串口通信应该是 bit 的传输,所以他有 11bit传输,

10bit传输,等bit的传输概念。

Even ,Mark 的意义已明白。 谢谢,给分 :-)

 
MARK: 标记校验, 即校验位始终为1
SPACE:空校验, 即校验位始终为0
好像没什么意义,校验效果太差了!
 
to:网络孤客,
MARK: 标记校验, 即校验位始终为1
SPACE:空校验, 即校验位始终为0
好像没什么意义,校验效果太差了!

主要:用于和终端(单片机之类的)通讯时,让终端更好的识别主机的命令。
8051系列单片机中:
SM2=1
必须为MARK的数据才接收,
SM2=0 则无所谓。
这样:所有终端先置SM2 =0。主机先发地址(SPACE),所有终端收到后,和自己的地址比较。如果
地址相同,则置SM2=1,主机发送为MARK的数据,就只有这个地址的终端可以
收到数据。
 
后退
顶部