欢迎来到天天文库
浏览记录
ID:49196347
大小:134.00 KB
页数:23页
时间:2020-03-01
《【精品】串口读卡通信协议.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、串口读卡设备通信协议第一部分:物理层RS232/RS485或RS422总线第二部分:数据链路层通信协议1.UART设置:波特率波特率波特率号24000x0048000x0196000x02144000x0319200出厂默认0x04288000x05384000x06576000x071152000x088位数据位无校验1位停止位2.数据帧在一条RS232电缆线或RS485或RS422总线上数据总是以一帧为单位进行通信的一帧的数据格式如下:帧起始符STX链路层信息Info帧结束符ETXlbyteNbyteslbyte下表对一帧数据的每个字段进行详细的解释字段长度说明ST
2、X10x82“StartofText”始标志标准的控制字符,是一个帧的起InfoN字节链路层数据信息,所有字节的最高位必须为0,从网络层接收的数据必须要通过数据扩展才能转换为链路层数据信息.ETX10x83“EndofText”束标志标准的控制字符是一个帧的结数据链路层接收规则:1.无论何时,如果接收一方接收到一个STX,则表示一帧的开始,继续接收地址;2.若接收到的地址字段与本机地址相符,则继续接收数据信息,直到收到一个ETX;否则丢弄后面的数据,直到再次收到一个STX3.链路层数据信息的每个字节的最高位必须为0,这是为了与STX和ETX区分开来。而高层数据信息的每个
3、字节的取值可为0x00~Oxff,这是因为在由高层数据转换为链路层数据信时,进行了扩展整形处理。处理原则为:高层数据每7字节为一组,在每组前面插入一个字节,该字节的最高位bit7为0,后面7位bitO〜bit6依次为后面7个字节的最高位。这样就可把该组每个字节的最高位bit7置为0如下图示:(网络层数据每7字节一组)BytelByte12Byte3Byte4Byte5Byte6Byte7bl7~blOb27~b20b37~b30b47~b40b57~b50b67~b60b77~b70链路层数据8字节填充字节BytelByte2Byte3Byte4Byte5Byte6By
4、te70b77~b!70bl6~bl00b26~b200b36~b300b46~b400b56~b500b66~b600b76~b70若最后一组数据不足7字节填充字节的相应位无效3.本层协议只管把数据接收下来,并不验证数据是否正确,验证数据必须通过上层协议來做;4.接收相邻两字符的间隔时间不得超过5ms,收到STX后立即启动超时定时器,若超时则本帧数据无效,重新接收下一个STX通信过程:在一个RS485或RS422总线上,从机读卡模块可以有多个,而主机控制器只能有一个,只有主机才能主动发送命令或控制数据给从机,从机只能对主机的命令做出动作和响应。1.主机:发送完命令数据
5、后,等待从机响应,若在100ms内从机未响应则重发命令。再次等待从机响应,若连续发三次从机均未响应,则停止重发且向调用程序报告错误。2.从机:从机只对与自身地址相符的命令帧做出响应,响应时必须将地址设置为0,如果接收到一个错误的数据或地址不符,则不做出任何响应。3.当主机以广播方式下发指令时,所有的从机都必须接收这帧数据,但只有以下两种情况下才允许对广播命令进行应答:A.某些特殊命令中,数据中包含有与本设备相符的设备序列号B.搜索命令,允许每个从机在某个时间片内分别作出应答第三部分:网络层通信协议网络层可以保证数据的可靠性和完整性,该层有3个字段,格式如下:接收者地址R
6、Addr发送者地址SAddr应用层信息Info校验和BCClbytelbyteNbyteslbyte网络层字段说明表:字段长度说明RAddr1数据接收者地址,这在多机通信时是必需的参数。只有当从机地址和该地址值相等时才处理所接收的数据。Oxff:广播地址,所有从机都必须接受这个地址SAddr1数拯发送者地址InfoN应用层数据信息BCC1从RAddr开始至应用层信息Info的最后一字节相异或后取反第四部分:应用层通信协议应用层数据格式如下:包号/命令类型SEQ/CmdType命令/状态Cmd/Status信息长度Length信息InfolbytelbytelbyteNb
7、ytes网络层字段说明表字段长度说明SEQ/CmdType1Bit7-4:该包序号从0到15循环,可以用来作为通信间的错误检查。从机接收到主机发来的信息,在应答信息中发出一个同样的SEQ信息,主机可以通过此信息检查是否发生的包丢失的错误。第一个包的SEQ可为任意值Bit3-0:命令类型0x00协议控制类命令如设置地址读产品序号等0x01设备控制类命令如读写10控制蜂鸣器读写寄存器等其他值保留从机返冋相同的CmdTypeCmd/Status1主机一〉从机:命令从机一〉主机:状态Length1该帧所带数据信息长度InfoLength数据信息第
此文档下载收益归作者所有