找回密码
 注册
LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 1709|回复: 3

请高手指点串口通讯中关于奇偶校验位的问题。

[复制链接]
那夜花开 该用户已被删除
发表于 2008-4-8 07:49:21 | 显示全部楼层 |阅读模式
我现在做的是对一个液晶终端的性能测试,该液晶终端在实际的485通讯网络系统中作为主机,依次发出查询指令,对各个模块进行数据的采集和显示,传送的串行数据格式为每帧11位,分别为起始位(0)、8个数据位、地址数据判断位(“1”表示地址,“0”表示数据)、停止位(1)。
    现在我在PC机上用LabVIEW模拟上述液晶终端的“下位机”(即从机,地址为6aH,对液晶终端发出的指令进行分析,然后返回一串数据,供液晶终端显示。液晶发出的访问命令为8字节,1地址、2年、3月、4日。5时、6分、7秒、8校验和。  
    现在的问题是:接收到的数据不正确,问题我的分析就是地址判断位(也就是奇偶校验位)的问题,地址判断位有None、Odd、Ecea、Mark、Space五个选项,不知道该选哪一个?我觉的应该选Mark,但从缓冲区读出的数据已经没有奇偶校验位(“1”表示地址,“0”表示数据),怎样才能分辩是地址还是数据呢?
    或者是还有其他的方法能实现上述的功能?请高手指点。
那夜花开 该用户已被删除
 楼主| 发表于 2008-4-8 12:00:06 | 显示全部楼层
现在的问题是怎样才能得到每个字节的第9位的值,也就是奇偶校验位的值。
回复 顶

使用道具 举报

发表于 2008-4-8 13:25:40 | 显示全部楼层
PC不要去模拟下位机,要做就只做发送命令的上位机还好点。
不是奇偶校验的位,不是这样称呼的。奇偶校验可以自动完成。
发送地址:设置为mark=1
发送命令:设置为space=0
而且每次都要重新初始化串口,执行效率是很慢的。

从原理上来说,你这样做可以;但实际上,一定要避免使用这种9位的数据格式,因为它不符合实际需要。
你若有命令和地址的区分,你就多设置个地址的标识好了。比如:地址+命令+校验和。
回复 顶

使用道具 举报

那夜花开 该用户已被删除
 楼主| 发表于 2008-4-8 15:34:44 | 显示全部楼层
楼上说的不错,我也是这样理解的,但要测试的仪器是固定不能改变的,所以pc只能做下位机。
因为现在是要对仪器进行通讯,并且仪器在实际的应用中是作为网络中的主机。
看来我只有再做一个单片机电路进行数据转换后再和PC连接啦
回复 顶

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2026-9-29 08:40 , Processed in 0.026496 second(s), 10 queries , Gzip On, File On.

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表