Ⅰ 单片机通信接口与通信协议有哪几种
232居多,变体的232会有RS485,RS422等,有的也有spi,iic等串行以及打印机支持的并行接口,高端的会有CAN工业总线接口、以太网络接口、IDE接口、和usb接口等等。
通信协议通常会根据实际应用的需要来选择。大型接口的网络有专用的结构完整功能强大的接口协议。很多初期的单片机应用只需几条指令即可完成通信需要,所以都是自己设计通信协议的。
Ⅱ 单片机串口通信是否必须要建立通信协议单片机之间通信是否也必须建立通信协议
单片机进行串口通信,需要设置波特率和一些电气参数(一般定义1BIT起始位,8BIT数据位,1BIT停止位,无奇偶校验位)这些就属于通信协议的范畴。再则,单片机接收的数据,需要进行处理,所以你必须要知道接收的数据代表的意义,这也是通信协议,只是不太严格的通信协议。而比较严格的通信协议则一般会定义起始字节,数据字节,校验字节,结束字节等等,这点对单片机来说到不是必须的,你只要知道接收到相应的数据,能够进行处理就好了。
Ⅲ 单片机协议是什么
单片机通信协议
现在大部分的仪器设备都要求能过通过上位机软件来操作,这样方便调试,利于操作。其中就涉及到通信的过程。在实际制作的几个设备中,笔者总结出了通信程序的通用写法,包括上位机端和下位机端等。
1.自定义数据通信协议
这里所说的数据协议是建立在物理层之上的通信数据包格式。所谓通信的物理层就是指我们通常所用到的RS232、RS485、红外、光纤、无线等等通信方式。在这个层面上,底层软件提供两个基本的操作函数:发送一个字节数据、接收一个字节数据。所有的数据协议全部建立在这两个操作方法之上。
通信中的数据往往以数据包的形式进行传送的,我们把这样的一个数据包称作为一帧数据。类似于网络通信中的TCPIP协议一般,比较可靠的通信协议往往包含有以下几个组成部分:帧头、地址信息、数据类型、数据长度、数据块、校验码、帧尾。
帧头和帧尾用于数据包完整性的判别,通常选择一定长度的固定字节组成,要求是在整个数据链中判别数据包的误码率越低越好。减小固定字节数据的匹配机会,也就是说使帧头和帧尾的特征字节在整个数据链中能够匹配的机会最小。通常有两种做法,一、减小特征字节的匹配几率。二、增加特征字节的长度。通常选取第一种方法的情况是整个数据链路中的数据不具有随即性,数据可预测,可以通过人为选择帧头和帧尾的特征字来避开,从而减小特征字节的匹配几率。使用第二种方法的情况更加通用,适合于数据随即的场合。通过增加特征字节的长度减小匹配几率,虽然不能够完全的避免匹配的情况,但可以使匹配几率大大减小,如果碰到匹配的情况也可以由校验码来进行检测,因此这种情况在绝大多说情况下比较可靠。
地址信息主要用于多机通信中,通过地址信息的不同来识别不同的通信终端。在一对多的通信系统中,可以只包含目的地址信息。同时包含源地址和目的地址则适用于多对多的通信系统。
数据类型、数据长度和数据块是主要的数据部分。数据类型可以标识后面紧接着的是命令还是数据。数据长度用于指示有效数据的个数。
Ⅳ 单片机通讯协议有哪些
1、单片机与其他单片机或芯片级的通讯有:RS232、IIC、SPI、并口(I/O)、DMA(如msp430、ARM);
2、单片机通过电缆与PC或其他设备通讯有:RS232、RS485、USB、CAN、光纤、以太网;
3、单片机远距离传输通讯(超过10米):RS485、CAN、以太网等。
Ⅳ 单片机常见的封装形式有哪些
单片机常见的封装形式有:DIP(双列直插式封装)、PLCC(特殊引脚芯片封装,要求对应插座)、QFP(四侧引脚扁平封装)、SOP(双列小外形贴片封装)等。
做实验时一般选用DIP封装的,如果选用其他封装,用编程器编程时还要配专用的适配器。如果对系统的体积有要求,如遥控器中用的单片机,往往选用QFP和SOP封装的。
Ⅵ 关于stc89s51单片机区别和协议问题
stc89s52是isp协议 ---那是指烧录程序的吧?与你的应用无关。
异步串口输出到上位机 ---串口通信它们都是一样的。
stc89s51有44引脚的吗? ---可查阅宏晶单片机官网。这是比较老的型号了,记得有LQFP封装的。
Ⅶ 单片机协议是什么
就是把数据分成一帧一帧地传送,一帧数据由发送起始位、数据位、校验码位、结束位组成,接收方按照这种数据结构解析出数据。这就是单片机通信协议。
Ⅷ 单片机与pc机的握手协议怎么写~!
第一步、要规定通讯波特率、起止位数、数据位、校验位等内容
比如:波特率9600,1个起始位,1个停止位,8个数据位,无校验位。
第二步、要确定通讯信息的执行流程,全双工、半双工等。最常用的是半双工模式,也就是一问一答方式。比如:采用半双工模式,流程如下
1、发送端发送1帧信息(发送)
2、发起端进入等待状态,等待接收端应答;
3、接收端接收后解析该信息并完成处理,然后将处理结果回送给通讯发起端(应答)
4、发起端收到应答,回到1、。
如此循环下去。
第三步、要规定通讯帧格式。
简单的协议格式可以是这种结构:
1、发送端: 帧头 + 帧长度 + 信息内容 +校验
帧头:可以用1、2个特殊数字来表示,比如0x1B、0x10;代表一帧的起始
帧长度:用于说明本帧数据的长度,一般用1个字节比较好
信息内容:不说了
校验:可以将前3段的所有信息求和,这样接收端可以进行同样的运算然后比较结果,从而判断接收到的信息是否有错。
举例:1B 10 0A 00 01 02 03 04 05 06 07 08 09 62
------- --- --------------------------------------- ---
帧头 长度 信息 校验和
2、接收端应答信息:
处理成功:'O'+'K'+ 应答信息长度 + 应答信息内容 + 校验和
处理失败:'E'+'R'+ 应答信息长度 + 应答信息内容(错误代码) + 校验和
举例:'O'+'K' 01 09 xx
------- --- ---- ---
帧头 长度 信息 校验和
这种方式及数据结构在串口通讯的实际使用中应用极广,花点时间去琢磨还是值得的。当然,上面只是提供了思路,要想保证通讯的完整性和正确性,协议中还要补充不少东西,比如接收端处理失败怎么办、收发信息错误或不完整怎么办、一帧信息容不下全部数据怎么办等等。
具体到双方握手,以上述模式为例:
发送端发送:1B 10 01 00 2C
------------- ---- ----- -----
帧头 长度 握手命令 校验和
接收方应答:'O'+'K' 01 09 xx
------- --- ---- ---
帧头 长度 信息 校验和