写通信协议
1. 如何编写自己的串口通讯协议
所谓的串口通信协议,其实,就是串口通信时,相互的一种联系方式。
至于内容完全可以根据自己的需要来制定。
包括:首先确定波特率,是否有奇偶校验,一般都不用,比较麻烦,但可以加一个字节的校验和或校验字。
其次,多机通信时,要确定每个机器的地址,双机通信就不用了。
然后是联系方式,即通信时,是否用握手信息,互相交换联系信号,为了加密,还可以交换密码。
最简单的就是:发一帧数据时用几个字节,带不带校验和,起始字节是什么,结束字节是什么,关键的命令字是什么,数据字节是什么。命令字表示什么动作,数据表示状态。反正都是自己确定的,怎么编写协议都 行的。
2. 什么是通信协议它主要包含哪些要素
通信协议(communications protocol)是指双方实体完成通信或服务所必须遵循的规则和约定。协议定义了数据单元使用的格式,信息单元应该包含的信息与含义,连接方式,信息发送和接收的时序,从而确保网络中数据顺利地传送到确定的地方。
协议主要由以下三个要素组成:
1语法:“如何讲”,数据的格式、编码和信号等级(电平的高低)。
2语义:“讲什么”,数据内容、含义以及控制信息。
3定时规则(时序):明确通信的顺序、速率匹配和排序.
3. 如何实现一个最简单的通信协议
协议一般要包含:起始符、、数据、校验码、结束符,5个部分的定义。其中 起始符、结束符,不能与其他数据重码。如只要传输字母与数字,可以看下ASCII码表,使用非数字和字母的符号做起始结束符即可,如{};数据长度码即表示此串数据包的数据长度,如果传输的数据串长度固定可省去;校验码相当于对此串数据正确性的校验,和奇偶校验效果类似,一般是和校验,即将数据全部累加得到一个和值当校验码,接收方收到数据也做一样的运算与收到的检验码比较,相等就说明正确接收。如要发{1234567890 }换成16进制即:7B 10 31 32 33 34 35 36 37 38 39 30 25 7D;31~30是数据,7B,7D分别为起始和结束符,10为数据长度的BCD码,25是校验码,是31~30的和模100后的BCD码,转成BCD码是为了避免与 起始和结束符重码。