写过MDB硬币器纸币器的进来下,MDB协议怎么通信啊?
本帖最后由 china_ssl 于 2013-06-13 22:57:20 编辑 我按照协议上的字节格式 1 个起始位+8 个数据位+1 个模式位+1 位停止位 ,起始位怎么发啊,还有模式位好像是吧奇偶校验设置成Mark或Space不知道对不对,然后再发一个8byte的数据
还有块发送就是发送0-36个字节,然后最后要有一个校验位,校验位是前面的所有加起来的和,八位的溢出的不管,我的理解是这样的,但是我发送的不行。
求那位写过的或者懂的指点指点,给个例子最好,.net的c的都行,最好是vb.net的
谢谢大家了,分不多,还请大家帮帮忙,还有下面那贴有40分至今没人回答,一并给了
http://bbs.csdn.net/topics/390240766
[解决办法]
本帖最后由 lbing7 于 2013-06-14 10:50:48 编辑 字节格式 1 个起始位+8 个数据位+1 个模式位+1 位停止位 ,起始位怎么发啊
这个是UART口的吧?
这个物理层的东西,不用你去算,配置好这些属性,把数据送入缓冲,启动发送就OK了
[解决办法]
1 实际使用的 MDB 物理协议有两种:
* 无奇偶校验的。这样,将原来的硬件的奇偶校验位来发送或接收是可以的。但要注意,主机发送到从机时,模式位要根据地址和数据字节切换;从机发往主机时,最后一个字节的模式位要置位,因此也是要切换的。
* 有奇偶校验的。这种情况下,要求硬件接口模块支持 9-bit 数据发送。
2 如果你的芯片是有硬件接口模块的,所有位(包括起始位)的发送都是硬件实现的,软件不关心。如果你是软件模拟方式,则起始位是将信号线拉低 1-bit 周期。
3 CHK Byte(检验字节,不是校验位),就是所有字节累加和的低 8 位。你可以用 16-bit 或 32-bit 变量做累加,然后取最低的 8-bit。