单片机协议

合集下载

单片机与PC机通信协议(RS232)

单片机与PC机通信协议(RS232)

帧格式如下:其中LB、DS在命令帧和应答帧中无。

差错控制与校验采用纵向冗余校验(LRC)。

发送方校验和生成方法:将FD、LB、DS域逐个字节相加求和,在求和过程中舍弃进位,最后将所得的和(单个字节)取补码作为检验和(CS)。

生成校验和的函数为:static unsigned char LRC(auchMsg,usDataLen) /* 函数返回unsigned char 类型的LRC 结果*/ unsigned char *auchMsg ; /* 要计算LRC 的报文*/unsigned short usDataLen ; /* 报文的字节数*/{unsigned char uchLRC = 0 ; /* LRC 初始化*/while (usDataLen--) /* 完成整个报文缓冲区*/uchLRC += *auchMsg++ ; /* 缓冲区字节相加,无进位*/return ((unsigned char)(-((char)uchLRC))) ; /* 返回二进制补码*/}接收方校验方法:将所有接收到的数据,即FD、LB、DS、CS等域逐个字节相加求和,在求和过程中舍弃进位,若结果为零(低字节)则传输无错,否则出错。

应答:接收方对接收数据进行校验后,若无错则向发送方发送传输无错应答帧,若有错则向发送方发送传输出错应答帧。

所需通信数据分为:数据帧、命令帧、应答帧上行数据:下位机(单片机)向上位机(PC机)传送数据⑴初始化上位机(IPC):FD=0x01 (InitPC)单片机将电梯模拟器的参数发送至PC机,初始化PC机端的可视化程序。

PC机上的可视化程序完成初始化后,应向单片机发送初始化完毕命令。

帧格式:⑵发送模拟器状态信息:FD=0x02 (SendMsgToPC)包括:轿厢位置,轿厢状态——上行/下行/停止,轿厢运行速度其中轿厢状态:上行——0x05下行——0x0A停止——0x00⑶开门命令:FD=0x03⑷开门到位命令:FD=0x04⑸关门命令:FD=0x05帧格式:⑹关门到位命令:FD=0x06⑺询问上位机是否准备好:FD=0x07 (IfPCReady)帧格式:下行数据:上位机(PC机)向下位机(单片机)传送数据⑴上位机准备好:FD=0x11⑵初始化完毕:FD=0x12 (PCInitFinish)⑶修改模拟器参数:FD=0x13 (AlterPara)⑷完成修改模拟器参数:FD=0x14 (FinishAlterPara)⑸下送模拟器参数:FD=0x15 (SendParaToMCU)帧格式:应答帧:⑴接收到的数据无错:FD=0xF1帧格式:⑵接收到的数据出错:FD=0xF2模拟器运行流程图修改模拟器参数流程图模拟器参数定义//参数号定义#define ID_Total_Floors 1#define ID_Special_Floor_A 3#define ID_Special_Floor_B 5#define ID_ID_Observe_Para 7#define ID_Dist_Bottom_Limit_Location 10#define ID_Dist_Bottom_Restrict_Location 11#define ID_Duration_Close_LiftDoor 16#define ID_Duration_Open_LiftDoor 17#define ID_Factor_FreqDivid_Hall 18#define ID_Polarity_Photoswitch 19#define ID_Floor_Lift_Lieto 29#define ID_Location_Lift 30#define ID_Length_UnivFloor 2#define ID_Length_Special_Floor_A 4#define ID_Length_Special_Floor_B 6#define ID_Length_Floor_Level_Board 8#define ID_Length_Speed_Alter_Board 9#define ID_Dist_Bottom_SpAlter_UpEnd 12#define ID_Dist_Top_SpAlter_LowEnd 13#define ID_Dist_Top_Restrict_Location 14#define ID_Dist_Top_Limit_Location 15ubyte Total_Floors; //最高楼层数ubyte Special_Floor_A; //专用楼层号Aubyte Special_Floor_B; //专用楼层号Bubyte ID_Observe_Para; //观测参数号ubyte Dist_Bottom_Limit_Location; //下极限与底楼平层的距离(向下计算),单位:厘米ubyte Dist_Bottom_Restrict_Location; //下限位与底楼平层的距离(向下计算),单位:厘米ubyte Duration_Close_LiftDoor; //电梯关门到位时间,单位:秒ubyte Duration_Open_LiftDoor; //电梯开门到位时间,单位:秒ubyte Factor_FreqDivid_Hall; //输入霍尔脉冲分频系数ubyte Polarity_Photoswitch; //平层区光电开关极性:0 - 进入平层区光电开关输出断开,1 - 进入平层区光电开关输出闭合ubyte Floor_Lift_Lieto; //电梯当前楼层uword Location_Lift; //电梯位置值,单位:厘米uword Length_UnivFloor; //通用楼层距离,单位:厘米uword Length_Special_Floor_A; //专用楼层号A的楼层距离(向上计算),单位:厘米uword Length_Special_Floor_B; //专用楼层号B的楼层距离(向上计算),单位:厘米uword Length_Floor_Level_Board; //平层挡板的长度,单位:毫米uword Length_Speed_Alter_Board; //上、下强换挡板的长度,单位:厘米uword Dist_Bottom_SpAlter_UpEnd; //下强换顶端与底楼平层的距离(向上计算),单位:厘米uword Dist_Top_SpAlter_LowEnd; //上强换底端与顶楼平层的距离(向下计算),单位:厘米uword Dist_Top_Restrict_Location; //上限位与顶楼平层的距离(向上计算),单位:厘米uword Dist_Top_Limit_Location; //上极限与顶楼平层的距离(向上计算),单位:厘米。

通用单片机通讯协议(ASCII)

通用单片机通讯协议(ASCII)
例如,
1、在单片机中定义从地址0开始的数据类型为BYTE型的变量:
则在组态王中定义相应的变量的寄存器为X0、X1、X2、X3、X4。。。。。。。。,数据类型为BYTE,每个变量占一个字节
2、在单片机中定义从地址100开始的数据类型为UINT型的变量:
则在组态王中定义相应的变量的寄存器为X100、X102、X104、X106、X108。。。。。。。。,数据类型UINT,每个变量占两个字节
bit3bit2 =1x,数据类型为浮点数。
数据地址:2字节4个ASCII码,0x0000~0xffff
数据字节数:1字节2个ASCII码,1—100,实际读写的数据的字节数。
数据…:为实际的数据转换为ASCII码,个数为字节数乘2。
异或:异或从设备地址到异或字节前,异或值转换成2个ASCII码
CR:0x0d。
46
30
30
30
46
30
34
31
30
46
46
46
46
30
30
字头
设备地址15
标志
写操作
浮点型
打包
数据地址15
数据字节数4
数据65535
30
30
0d
异或
若正确:
40
30
46
23
23
37
36
0d
字头
设备地址15
##
异或
若不正确:
40
30
46
2a
2a
37
36
0d
字头
设备地址15
**
异或
5.浮点数格式:
4字节浮点数=第一字节高4位ASCII码+第一字节低4位ASCII码

单片机和上位机协议

单片机和上位机协议

单片机和上位机协议一、引言随着科技的快速发展,单片机在各个领域得到了广泛的应用。

而单片机与上位机之间的通信协议也成为了重要的研究方向。

本文将探讨单片机与上位机之间的通信协议,包括协议的基本原理、常见的协议类型以及它们的应用场景等。

二、单片机与上位机之间的通信协议基本原理单片机与上位机之间的通信协议是为了实现两者之间的数据交换和通信而设计的。

协议的基本原理是通过一定的规则和约定,实现数据的传输和解析。

常见的单片机与上位机通信协议包括串口通信、USB通信、以太网通信等。

其中,串口通信是最常见和简单的通信方式。

它通过串口线将单片机与上位机连接起来,通过发送和接收数据来实现通信。

串口通信具有成本低、易于实现等优点,广泛应用于各个领域。

三、常见的单片机与上位机通信协议类型1. 串口通信协议串口通信协议是最常见和简单的通信方式。

它使用串口线将单片机与上位机连接起来,通过发送和接收数据来实现通信。

常见的串口通信协议包括RS232、RS485等。

RS232是一种标准的串行通信接口,广泛应用于计算机、工业自动化等领域;RS485是一种多点通信协议,支持多个设备同时通信,适用于工业控制系统等应用场景。

2. USB通信协议USB通信协议是一种高速、可靠的通信方式。

它通过USB接口将单片机与上位机连接起来,实现数据的传输和通信。

USB通信协议具有带宽大、速度快等优点,广泛应用于外设设备、嵌入式系统等领域。

常见的USB通信协议包括USB1.1、USB2.0、USB3.0等。

3. 以太网通信协议以太网通信协议是一种广域网通信协议,它通过以太网接口将单片机与上位机连接起来,实现数据的传输和通信。

以太网通信协议具有传输速度快、可靠性高等优点,广泛应用于局域网、互联网等领域。

常见的以太网通信协议包括TCP/IP、UDP等。

四、单片机与上位机通信协议的应用场景单片机与上位机通信协议在各个领域都有着广泛的应用。

在工业控制领域,单片机与上位机通信协议被用于监控系统、物联网等方面。

单片机通讯协议有哪些

单片机通讯协议有哪些

单片机通讯协议有哪些单片机通讯协议是指在单片机系统中,不同设备之间进行通讯时所遵循的规定和约定。

在实际的单片机应用中,通讯协议起着非常重要的作用,它决定了不同设备之间的数据交换方式和通讯流程。

下面我们将介绍一些常见的单片机通讯协议。

1. 串行通讯协议。

串行通讯协议是一种通过串行线路进行数据传输的通讯方式,常见的串行通讯协议包括UART、SPI和I2C。

UART(Universal Asynchronous Receiver/Transmitter)是一种异步串行通讯协议,它通过一根传输线路进行数据的串行传输,适用于中短距离通讯。

SPI(Serial Peripheral Interface)是一种同步串行通讯协议,它使用四根线路进行通讯,包括时钟线、数据线、主从选择线和从机输出线,适用于高速通讯和短距离通讯。

I2C(Inter-Integrated Circuit)是一种双向二线制串行总线,适用于多个设备之间的通讯,可以实现多主机和多从机的通讯。

2. 并行通讯协议。

并行通讯协议是一种通过并行线路进行数据传输的通讯方式,常见的并行通讯协议包括总线协议和并行接口协议。

总线协议是一种多设备共享同一总线进行通讯的协议,常见的总线协议包括ISA、PCI、USB等,适用于多设备之间的通讯和数据交换。

并行接口协议是一种通过并行接口进行数据传输的协议,常见的并行接口协议包括Centronics接口、IEEE-488接口等,适用于打印机、仪器设备等外部设备的通讯。

3. 网络通讯协议。

网络通讯协议是一种通过网络进行数据传输的通讯方式,常见的网络通讯协议包括TCP/IP、UDP、HTTP等。

TCP/IP是一种传输控制协议/因特网协议,它是互联网的核心协议,提供可靠的、面向连接的通讯服务,适用于大规模网络通讯。

UDP(User Datagram Protocol)是一种用户数据报协议,它是一种无连接的通讯协议,适用于实时性要求较高的通讯。

单片机通信技术UARTSPI和IC

单片机通信技术UARTSPI和IC

单片机通信技术UARTSPI和IC 单片机通信技术:UART、SPI和IC单片机(Microcontroller)是一种集成了处理器核心、存储器和外设接口的微型计算机系统。

在各种电子设备中,单片机扮演着控制和通信的重要角色。

本文将介绍单片机通信技术中的UART、SPI和IC (Integrated Circuit)三个关键概念,并探讨它们之间的联系与应用。

一、UART通信技术UART(Universal Asynchronous Receiver/Transmitter)通信技术是一种异步串行通信协议,通常用于单片机与外部设备之间的通信。

UART通过串口将数据以二进制的形式进行传输,通信的双方需要约定好各自的通信参数,如波特率、数据位数、停止位等。

UART通信技术的核心在于数据的传输方式,它采用了起始位、数据位、校验位和停止位的组合来实现数据的传输。

起始位用于告知数据接收方一组数据的开始,数据位是用来传输具体的数据内容,校验位用于检测数据的准确性,停止位用于标志一组数据的结束。

UART通信技术具有简单、稳定、成本低等优点,因此在许多单片机应用中得到广泛应用。

例如,串口通信、蓝牙通信、红外通信等都可采用UART技术。

二、SPI通信技术SPI(Serial Peripheral Interface)通信技术是一种同步串行通信协议,常用于实现单片机与外围设备之间的高速数据传输。

SPI通信采用全双工的方式,即可以同时进行数据发送和接收。

SPI通信技术的关键在于主从设备之间的时钟同步和数据传输协议。

在SPI通信中,主设备控制通信的时序和数据传输的规则,从设备负责响应主设备的指令并返回数据。

SPI通信使用了四根信号线,分别是时钟信号(SCK)、主设备输出从设备输入信号(MOSI)、从设备输出主设备输入信号(MISO)和片选信号(SS)。

SPI通信技术具有高速、全双工、多设备共享总线等特点,因此被广泛应用于数据存储器、显示设备、模数转换器(ADC)、数模转换器(DAC)等外围设备的通信。

STC单片机的协议

STC单片机的协议

STC单片机的下载协议关于STC的下载在Linux平台下面一直是一个老大难的问题。

我最近一段时间去ourdev网站,和数码之家,包括有一些热心人的协助。

以及一些前人开发的开源软件,类似gSTC-ISP之类的软件。

才让我完全的搞懂了STC的ISP协议。

本文以GPL v3条款发布。

但是切勿胡乱传播。

影响宏晶的利益。

这个逆向工程做的并不妥当。

望宏晶包涵,毕竟你并未公开协议。

导致我们使用Linux的人痛苦不堪。

现在先放出用Gambas写的两个ISP软件。

分别对应89系列和12系列。

15系列正在分析。

别的系列因为不常用暂无协议。

SerialPort kSTC89-ISP那么呢,我就先从STC89系列的讲起。

大同小异的。

STC89系列的单片机在上电的时候会执行在ISP FLASH 的ISP程序。

只要在串口上收到连续的0x7f,便会进入ISP模式。

老姚选择 0x7f的理由是里面没有连续的低电平。

这样的话就可以让单片机来调整自身UART的时钟到计算机的时钟,让波特率同步。

但是若频率太高,则测不准。

所以启动波特率要控制在9600以下为宜。

而且均有时间限制。

如果不在超时时间内连接MCU。

MCU会自动断开,跑用户程序。

这就是为什么某些芯片,类似PL2303打开关闭速度慢的芯片下载容易出问题的原因。

切入正题:STC的数据包格式为:包头 2BYTE+标识 2BYTE +长度 1BYTE +包类型1 BYTE+数据 nnBYTE+校验码 1BYTE+包尾1BYTE。

包头固定0×46,0xb9.(但是在信息帧中不包含包头标识来自单片机的是68 00而来自计算机的是6A 00包尾固定0×16.至于我这里捕获的标识,在89系列里大概有0×00 ——信息(注意,这里没有包头)0×00 ——数据(这个是切换波特率以后的0x8F ——新波特率实验0x8E ——波特率正式更改0×84 ——擦除芯片0×80 ——校验返回0x8D ——设置选项并且结束编程0×80 ——(结束时,上位机)结束编程,通知MCU复位。

组态王通用单片机协议(ASCII)说明

组态王通用单片机协议(ASCII)说明

组态王通用单片机协议(ASCII)说明概述通用单片机ASCII协议支持单片机与组态王通讯,用户只要按照我们的协议编写单片机通讯程序就可实现与组态王的通讯.组态王设置1、定义组态王设备定义组态王定义设备时请选择:智能模块\单片机\通用单片机ASCII\串口组态王的设备地址定义格式:##.#前面的两个字符是设备地址,范围为0-255,此地址为单片机的地址,由单片机中的程序决定;后面的一个字符是用户设定是否打包,"0"为不打包、"1"为打包,用户一旦在定义设备时确定了打包,组态王将处理读下位机变量时数据打包的工作,与单片机的程序无关.2、组态王通讯通讯方式:RS-232,RS-485,RS-422均可。

波特率:由单片机决定(2400,4800,9600and19200bps)。

注意:在组态王中设置的通讯参数如波特率,数据位,停止位,奇偶校验必须与单片机编程中的通讯参数一致3.组态王数据词典--变量定义在组态王中定义的寄存器数据格式(类型):由单片机决定。

斜体字dd代表数据地址,此地址与单片机的数据地址相对应.注意:在组态王中定义变量时,一个X寄存器根据所选数据类型(BYTE,USHORT,FLOAT)的不同,分别占用一个、两个,四个字节,定义不同的数据类型要注意寄存器后面的地址,同一数据区内不可交叉定义不同数据类型的变量。

为提高通讯速度建议用户使用连续的数据区。

例如,1、在单片机中定义从地址0开始的数据类型为BYTE型的变量: 则在组态王中定义相应的变量的寄存器为X0、X1、X2、X3、X4。

,数据类型为BYTE,每个变量占一个字节2、在单片机中定义从地址100开始的数据类型为USHORT型的变量: 则在组态王中定义相应的变量的寄存器为X100、X102、X104、X106、X108。

数据类型USHORT,每个变量占两个字节3、在单片机中定义从地址200开始的数据类型为FLOAT型的变量: 则在组态王中定义相应的变量的寄存器为X200、X204、X208、X212。

单片机通讯协议

单片机通讯协议

CSerialPort向父类发送的消息号如下:
#define WM_COMM_RXCHAR WM_USER+7 // A character was received and placed in the input buffer.
因此需要手动添加此消息的响应函数:
else
state_machine = 0; // 状态机复位
}
else if(state_machine == 1)
{
if(rcvdat == 0xAA) // 接收到帧头第二个数据
state_machine = 2;
else
state_machine = 5;
else
state_machine = 0;
}
else if(state_machine == 5)
{
lencnt = 0; // 接收数据计数器
rcvcount = rcvdat; // 接收数据长度
state_machine = 0; // 状态机复位
}
else if(state_machine == 2)
{
if(rcvdat == 0x7E) // 接收到帧头第三个数据
state_machine = 3;
else
state_machine = 0; // 状态机复位
通信中的数据往往以数据包的形式进行传送的,我们把这样的一个数据包称作为一帧数据。类似于网络通信中的TCPIP协议一般,比较可靠的通信协议往往包含有以下几个组成部分:帧头、地址信息、数据类型、数据长度、数据块、校验码、帧尾。
帧头和帧尾用于数据包完整性的判别,通常选择一定长度的固定字节组成,要求是在整个数据链中判别数据包的误码率越低越好。减小固定字节数据的匹配机会,也就是说使帧头和帧尾的特征字节在整个数据链中能够匹配的机会最小。通常有两种做法,一、减小特征字节的匹配几率。二、增加特征字节的长度。通常选取第一种方法的情况是整个数据链路中的数据不具有随即性,数据可预测,可以通过人为选择帧头和帧尾的特征字来避开,从而减小特征字节的匹配几率。使用第二种方法的情况更加通用,适合于数据随即的场合。通过增加特征字节的长度减小匹配几率,虽然不能够完全的避免匹配的情况,但可以使匹配几率大大减小,如果碰到匹配的情况也可以由校验码来进行检测,因此这种情况在绝大多说情况下比较可靠。

rs485协议详解单片机编程

rs485协议详解单片机编程

rs485协议详解单片机编程RS485协议详解单片机编程1. 协议双方基本信息甲方:(以下简称“甲方”)地址:联系人:电话:邮箱:乙方:(以下简称“乙方”)地址:联系人:电话:邮箱:2. 各方身份、权利、义务、履行方式、期限、违约责任2.1 甲方身份、权利、义务、履行方式、期限、违约责任甲方为RS485通讯协议的发起方,其权利、义务、履行方式、期限、违约责任如下:权利:1. 确定通讯协议的实现方案;2. 对乙方提供的通讯协议实现方案进行审核并提出修改意见;3. 在付款后,获得乙方提供的符合要求的实现方案。

义务:1. 提供通讯协议的需求文档及其他相关资料;2. 对乙方提供的通讯协议实现方案进行评估并提出需要修改的意见;3. 对于乙方提供的符合要求的实现方案进行支付。

履行方式:1. 双方确认和签署本协议后,甲方向乙方提供通讯协议的需求文档及其他相关资料;2. 乙方拟定通讯协议实现方案并提交给甲方审查;3. 甲方对乙方提供的通讯协议实现方案进行评估并提出需要修改的意见,乙方对意见进行修改并重新提交审查;4. 经过双方的多次确认和修改后,乙方提供符合甲方要求的实现方案,并向甲方提供;5. 甲方对乙方提供的符合要求的实现方案进行支付。

期限:本协议签署后,甲乙双方应在合理时间内完成上述流程。

违约责任:1. 若乙方违约,甲方有权解除本协议,并要求乙方承担相应的赔偿责任;2. 若甲方违约,应承担相应的违约责任。

2.2 乙方身份、权利、义务、履行方式、期限、违约责任乙方为RS485通讯协议的实现方,其权利、义务、履行方式、期限、违约责任如下:权利:1. 按照甲方提供的需求文档及其他相关资料进行通讯协议实现方案的拟定;2. 享有按约定支付的费用。

义务:1. 按照甲方提供的需求文档及其他相关资料提供符合要求的通讯协议实现方案;2. 对于甲方提出的修改意见,及时进行修改并重新提交审查。

履行方式:1. 双方确认和签署本协议后,甲方向乙方提供通讯协议的需求文档及其他相关资料;2. 乙方拟定通讯协议实现方案并提交给甲方审查;3. 甲方对乙方提供的通讯协议实现方案进行评估并提出需要修改的意见,乙方对意见进行修改并重新提交审查;4. 经过双方的多次确认和修改后,乙方提供符合甲方要求的实现方案,并向甲方提供;5. 甲方对乙方提供的符合要求的实现方案进行支付。

单片机_自定义通讯协议_概述及解释说明

单片机_自定义通讯协议_概述及解释说明

单片机自定义通讯协议概述及解释说明1. 引言1.1 概述引言部分旨在向读者介绍本篇长文的主题,即单片机自定义通信协议。

本文将对单片机通信协议进行概述并解释说明其相关内容。

单片机通信协议是控制和管理单片机与外部设备之间数据传输的重要规范,其设计直接影响到系统的性能、功能和稳定性等方面。

1.2 文章结构文章的结构分为以下几个部分。

首先,我们将在第二部分概述单片机通信协议的基本概念和重要性,以帮助读者全面了解该主题。

接下来,在第三部分将介绍自定义单片机通信协议所需遵循的设计原则,以确保其具有灵活性、可扩展性、适应各种环境和需求以及安全性和可靠性。

第四部分将详细讲解实现自定义单片机通信协议的步骤,包括定义消息格式和数据结构、建立数据传输规则和流程控制方式以及实现硬件和软件层面支持协议的功能。

最后,在第五部分总结文章内容并展望自定义单片机通信协议在未来的优势应用场景及发展方向与挑战。

1.3 目的本篇长文的目的是为读者提供关于单片机自定义通信协议的全面概述及解释说明。

通过阅读本文,读者将了解到单片机通信协议的意义和重要性,以及如何设计并实现一个自定义的通信协议来满足不同环境和需求。

同时,本文还将讨论自定义单片机通信协议所具有的优势,并展望其未来在各个领域中的应用场景和发展趋势。

通过对该主题的深入探讨,读者能够更好地理解和应用单片机自定义通信协议技术。

2. 单片机通信协议概述:2.1 什么是通信协议通信协议是指在不同设备之间进行数据传输和交流时所遵循的一套规则和约定。

它定义了数据传输的格式、数据编码方式、数据校验方法以及传输控制等方面的内容。

通过使用通信协议,各种设备能够正确地理解和解释彼此发送和接收的信息。

2.2 单片机通信的重要性单片机通信是指在单片机与其他设备(如传感器、执行器等)之间进行信息交互的过程。

在很多应用中,单片机需要与外部设备进行数据交换或控制命令传输。

因此,单片机通信协议具有非常重要的作用,可以保证信息的准确传递和处理。

pc机与单片机之间的通信方式及协议

pc机与单片机之间的通信方式及协议

pc机与单片机之间的通信方式及协议PC机和单片机之间的通信是嵌入式系统开发过程中的一个重要问题。

随着嵌入式技术的不断发展,越来越多的应用需要通过PC机和单片机之间的通信来实现数据交换、控制指令传输等功能。

本文将深入探讨PC机和单片机之间的通信,并介绍一些常用的通信方式和协议。

一、PC机和单片机之间的通信方式在PC机和单片机之间进行通信前,需要确定使用哪种通信方式。

根据通信距离、带宽、成本和可靠性等因素的不同,可以选择以下几种通信方式:1.串口通信串口通信是PC机和单片机之间最常用的通信方式之一。

它使用两根线(TX 和RX)进行数据传输,传输速率一般较低,但成本低廉,适用于较短距离的通信。

串口通信常用的协议包括UART(Universa1AsynchronousReceiver/TransmItter)>RS232和RS485等。

2.并口通信并口通信是另一种常见的PC机和单片机之间的通信方式。

它使用8根或16根线进行数据传输,传输速率较高,但成械校高,适用于较长距离的通信。

并口通信常用的协议包括GP1O(Genera1Purpose1nput∕Output)、1PT(1inePrintTermina1)和CentroniCS等。

B通信USB通信是一种高速、可靠和易于使用的通信方式,成本适中,适用于中短距离的通信。

USB通信可以提供高带宽和多路复用功能,并支持热插拔和自动配置。

在PC机和单片机之间进行USB通信时,需要使用USB转串□芯片或USB转并口芯片将USB信号转换为串口信号或并□信号。

4.网络通信网络通信是一种基于TCP/IP协议的通信方式,适用于远程通信和大规模数据传输。

在PC机和单片机之间进行网络通信时,需要使用以太网接口芯片或无线网络模块等设备来连接网络,并通过socket编程实现数据交换和控制指令传输。

二、PC机和单片机之间的通信协议为了保证PC机和单片机之间的通信稳定和正确,需要使用适当的通信协议。

单片机通讯协议(非常经典)

单片机通讯协议(非常经典)
单片机通信协议 现在大部分的仪器设备都要求能过通过上位机软件来操作,这样方便调试,利于操作。其 中就涉及到通信的过程。在实际制作的几个设备中,笔者总结出了通信程序的通用写法, 包括上位机端和下位机端等。 1.自定义数据通信协议
这里所说的数据协议是建立在物理层之上的通信数据包格式。所谓通信的物理层就是指我 们通常所用到的RS232、RS485、红外、光纤、无线等等通信方式。在这个层面上,底层软 件提供两个基本的操作函数:发送一个字节数据、接收一个字节数据。所有的数据协议全 部建立在这两个操作方法之上。 通信中的数据往往以数据包的形式进行传送的,我们把这样的一个数据包称作为一帧数据 。类似于网络通信中的TCPIP协议一般,比较可靠的通信协议往往包含有以下几个组成部 分:帧头、地址信息、数据类型、数据长度、数据块、校验码、帧尾。
以下给出具体的实例。在这个系统中,串口的命令非常简单。所有的协议全部在串口中断 中进行。数据包的格式如下:
0x55, 0xAA, 0x7E, 0x12, 0xF0, 0x02, 0x23, 0x45, SUM, XOR, 0x0D
其中0x55,
0xAA,
0x7E为数据帧的帧头,0x0D为帧尾,0x12为设备的目的地址,0xF0为源地址,0x02为数据
} else if(state_machine == 10) {
if(0x0D == rcvdat) // 判断是否接收到帧尾结束符 {
retval = 0xaa; // 置标志,表示一个数据包接收到 } state_machine = 0; // 复位状态机 }
此过程中,使用了一个变量state_machine作为协议状态机的转换状态,用于确定当前字节 处于一帧数据中的那个部位,同时在接收过程中自动对接收数据进行校验和处理,在数据 包接收完的同时也进行了校验的比较。因此当帧尾结束符接收到的时候,则表示一帧数据 已经接收完毕,并且通过了校验,关键数据也保存到了缓冲去中。主程序即可通过retval的 标志位来进行协议的解析处理。

单片机模拟can协议实验报告

单片机模拟can协议实验报告

单片机模拟can协议实验报告单片机模拟CAN协议实验报告一、双方的基本信息甲方:XXX公司地址:XXX省XXX市XXX区XXX路XXX号联系人:XXX电话:XXX邮箱:XXX乙方:XXX公司地址:XXX省XXX市XXX区XXX路XXX号联系人:XXX电话:XXX邮箱:XXX二、各方身份、权利、义务、履行方式、期限、违约责任甲方身份:CAN总线的发送端甲方权利:甲方拥有CAN总线的控制权和发送数据的权利甲方义务:甲方有义务确保发送的数据符合CAN协议的要求,并确保CAN总线的传输有效甲方履行方式:甲方需要在实验中使用单片机模拟CAN 总线,发送数据甲方期限:实验期限为X天甲方违约责任:如甲方未能按照本协议的约定履行义务,乙方有权要求甲方承担相应的违约责任,包括但不限于赔偿乙方因此受到的损失、承担违约金等乙方身份:CAN总线的接收端乙方权利:乙方拥有CAN总线的接收数据的权利乙方义务:乙方有义务确保接收的数据符合CAN协议的要求,并确保CAN总线的传输有效乙方履行方式:乙方需要在实验中使用单片机模拟CAN 总线,接收数据乙方期限:实验期限为X天乙方违约责任:如乙方未能按照本协议的约定履行义务,甲方有权要求乙方承担相应的违约责任,包括但不限于赔偿甲方因此受到的损失、承担违约金等三、需遵守中国的相关法律法规双方在实验过程中需遵守中国相关法律法规,如《中华人民共和国合同法》、《中华人民共和国民法通则》等法规四、明确各方的权力和义务甲乙双方在本协议中均拥有相应的权利和义务,双方应当相互尊重,平等互利地履行各自的权利和义务五、明确法律效力和可执行性本协议为双方在实验中的协议,具有法律效力和可执行性,任何一方未能按照协议约定履行义务的,均应承担相应的法律责任六、其他本协议未尽事宜,由甲乙双方协商解决。

本协议一式两份,自双方签字后生效。

甲方签字:年月日乙方签字:年月日。

组态王与单片机协议-通用单片机通讯协议(ASCII)

组态王与单片机协议-通用单片机通讯协议(ASCII)

组态王与单片机协议1.通讯口设置:通讯方式:RS-232,RS-485,RS-422均可。

波特率:由单片机决定(2400,4800,9600and19200bps)。

注意:在组态王中设置的通讯参数如波特率,数据位,停止位,奇偶校验必须与单片机编程中的通讯参数一致2.在组态王中定义设备地址的格式格式:##.#前面的两个字符是设备地址,范围为0-255,此地址为单片机的地址,由单片机中的程序决定;后面的一个字符是用户设定是否打包,“0”为不打包、“1”为打包,用户一旦在定义设备时确定了打包,组态王将处理读下位机变量时数据打包的工作。

注意:在组态王中定义变量时,一个X寄存器根据所选数据类型(BYTE,UINT,FLOAT)的不同分别占用一个、两个,四个字节,定义不同的数据类型要注意寄存器后面的地址,同一数据区内不可交叉定义不同数据类型的变量。

为提高通讯速度建议用户使用连续的数据区。

例如,1、在单片机中定义从地址0开始的数据类型为BYTE型的变量:则在组态王中定义相应的变量的寄存器为X0、X1、X2、X3、X4。

,数据类型为BYTE,每个变量占一个字节2、在单片机中定义从地址100开始的数据类型为UINT型的变量:则在组态王中定义相应的变量的寄存器为X100、X102、X104、X106、X108。

,数据类型UINT,每个变量占两个字节3、在单片机中定义从地址200开始的数据类型为FLOAT型的变量:则在组态王中定义相应的变量的寄存器为X200、X204、X208、X212。

,数据类型FLOAT,每个变量占四个字节3.组态王与单片机通讯的命令格式:读写格式(除字头、字尾外所有字节均为ASCII码)字头:1字节1个ASCII码,40H设备地址:1字节2个ASCII码,0—255(即0---0x0ffH)标志:1字节2个ASCII码,bit0~bit7,bit0= 0:读,bit0= 1:写。

bit1= 0:不打包。

1602与单片机连接协议

1602与单片机连接协议

1602与单片机连接协议1602液晶模块是一种常用的字符型液晶显示器,常用于单片机系统中的信息显示。

与单片机连接时,一般使用的连接协议是通过并行方式进行数据传输。

连接方法:通常,液晶模块的16个引脚通过扁平电缆与单片机的I/O口相连。

这16个引脚可以分为三组信号线:数据线(D0-D7)、控制线(RS、R/W、E)以及背光控制线(BLA、BLK)。

1.数据线(D0-D7):用于传输显示字符的数据,共有8根线,分别对应液晶模块的8个数据线。

2.控制线(RS、R/W、E):- RS(Register Select):用于选择数据的类型,高电平表示传输的是字符数据,低电平表示传输的是指令。

- R/W(Read/Write):用于选择读或写操作,高电平表示读操作,低电平表示写操作。

- E(Enable):控制数据的传输,只有在E为高电平时,数据才会被读写。

3.背光控制线(BLA、BLK):- BLA(Backlight Anode):背光阳极。

- BLK(Backlight Cathode):背光阴极。

传输过程:单片机与液晶模块之间的数据传输基本上是通过一定的时间序列来实现的。

主要步骤如下:1.初始化:在使用液晶模块之前,需要进行初始化,初始化包括发送一系列的指令来设置显示模式、光标位置等。

2.设置数据类型:通过RS线将其设置为“低电平”以传输指令,或将其设置为“高电平”以传输字符数据。

3.写操作:将R/W线设置为“低电平”,表示写操作。

此时,将待传输的数据通过数据线(D0-D7)传输给液晶模块。

4.读操作:将R/W线设置为“高电平”,表示读操作。

此时,读取液晶模块的数据。

5.使能操作:将E线由“低电平”变为“高电平”一段时间,使液晶模块接收数据。

基本指令:液晶模块有一系列的内置指令,用于设置其显示模式、光标位置、清除屏幕等。

下面是几个常用的指令:1.0x01:清除屏幕。

2.0x02:将光标复位到起始位置。

单片机常用通信协议

单片机常用通信协议

单片机常用通信协议单片机常用通信协议有UART、I2C、SPI、CAN等。

1. UART(Universal Asynchronous Receiver / Transmitter,通用异步收发器):UART是一种非同步的通信协议,由收发器两端的时钟不一致所产生,使用UART进行数据传输时,在发送端需要以固定的波特率将数据字节流发出,接收端需要根据这个波特率解读出发送端发送的数据。

2. I2C(Inter-Integrated Circuit,现代总线):I2C是一种非常古老的半双工的现代总线,其特点是使用两根总线(SDA,SCL)来传输数据,可以连接多个设备,也可以支持设备之间的通信。

在这个总线上,有一个主设备和多个从设备,主设备控制整个网络的通信,从设备只能接受主设备下发的指令并进行响应。

3. SPI(Serial Peripheral Interface,串行外围接口):SPI是一种全双工的,同步的通信协议,它需要4根信号线:MOSI(Master Out Slave In,主机输出从机输入)、MISO(Master In Slave Out,主机输入从机输出)、SCK(Serial Clock,时钟信号)和CS(Chip Select,片选信号),在这个总线上,总线上有一个主机和多个从机,主机控制数据的传输,从机只能接受主机发来的指令,并作出相应的响应。

4. CAN(Controller Area Network,控制器区域网络):CAN是一种广泛应用的多点总线,它可以连接多个设备,使这些设备之间可以相互通信,它采用两根线(CANH,CANL)来传输数据,也就是说,多个设备可以通过这两根线来进行数据传输。

CAN总线上没有主从之分,所有节点都可以向网络中发送和接收数据,这个总线可以有效防止因传输的数据位错误而导致的故障。

[整理]单片机IO总线通讯协议

[整理]单片机IO总线通讯协议

单片机I/O总线通信协议
该总线采用P0口做I/O数据口,P1.0作为总线脉冲输出,P1.1和P1.2作为I/O端口地址,P1.3为I/O读信号,P1.4为I/O写信号,P1.5为I/O设备READY信号,P3.2和P3.3作为中断输入。

总线接口表:
I/O地址输出0
I/O写信号
I/O设备READY信号000
I/O写INIT数据0
I/O读信号
I/O设备READY信号000
I/O读I/O信息数据0
I/O设备写数据时序图
I/O地址输出0
I/O写信号
I/O设备READY信号000
I/O写控制数据0
I/O设备READY信号000
I/O写数据
I/O设备读数据时序图
I/O地址输出0
I/O写信号
I/O设备READY信号000
I/O写读控制数据0
I/O设备READY信号000
I/O读数据
I/O端口初始化时I/O设备回复数据定义
I/O端口控制命令:在I/O端口控制命令中,包含I/O端口初始化命令、键盘读取命令、显示数据传送命令、硬盘读写命令等。

I/O端口初始化命令、键盘读取命令和显示传送命令为单字节命令;硬盘读写命令为4字节命令。

命令第一个字节的高4位是命令代码,硬盘命令的低4位是发送和读取的扇区数,其他命令的低4位暂时为空。

I/O端口控制命令。

单片机协议书范本

单片机协议书范本

单片机协议书范本甲方(委托方):_____________________地址:_________________________________联系电话:__________________________乙方(受托方):_____________________地址:_________________________________联系电话:__________________________鉴于甲方需要开发和制造单片机产品,乙方具备相应的技术能力和生产条件,双方本着平等互利的原则,经友好协商,达成如下协议:第一条定义1.1 单片机:指由乙方开发和制造的集成电路产品,具备特定的功能和性能指标。

1.2 开发:指乙方根据甲方需求,完成单片机的设计方案、电路设计、软件编程等工作。

1.3 生产:指乙方按照开发完成的设计方案,进行单片机的生产和组装。

第二条合作内容2.1 甲方委托乙方开发和生产单片机产品,乙方应按照甲方提供的技术参数和性能要求进行开发和生产。

2.2 乙方应保证所开发和生产的单片机产品符合甲方的技术要求和质量标准。

第三条技术要求和质量标准3.1 甲方应在本协议签订后____天内提供详细的技术参数和性能要求。

3.2 乙方应根据甲方提供的要求,制定开发计划,并在____天内完成开发方案的初稿,提交甲方审核。

3.3 甲方应在收到开发方案初稿后____天内完成审核,并提出修改意见。

乙方应在收到修改意见后____天内完成修改,并提交甲方复审。

第四条开发和生产周期4.1 乙方应在开发方案经甲方确认后____天内完成单片机的样品开发。

4.2 甲方应在收到样品后____天内完成测试,并提出测试报告。

4.3 乙方应在收到测试报告后____天内完成必要的调整,并提交甲方复测。

4.4 甲方确认样品符合要求后,乙方应在____天内开始批量生产。

第五条知识产权5.1 乙方应保证所开发和生产的单片机产品不侵犯任何第三方的知识产权。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机通信协议
通讯参数数据传输格式数据通讯举例说明协议说明
一、通讯参数
通讯参数包括数据位,停止位,波特率、校验方式。

数据位、停止位、波特率由单片机决定。

组态软件中的设定和单片机一致即可。

校验方式为和校验。

二、数据传输格式
格式1、组态软件读数据命令格式:
格式2、单片机应答读数据格式(正确):
格式3、组态软件写数据命令格式:
格式4、组态软件位操作写数据命令格式:
格式5、单片机应答读数据格式
三、数据通讯举例说明
1、读数据
组态软件:发送读数据命令(格式1)
单片机:响应读数据命令
正确:返回(格式2)
2、写数据
组态软件:发送写数据命令(格式3)
组态软件:发送开关量写命令(格式4)
单片机:响应写数据命令
正确:返回(格式5)
四、协议说明
数据传输:所有数据均为16进制数
Sta: 设备地址1字节
R:读标志1字节(0x52)
W:写标志1字节(0x57)
B:位操作写标志1字节(0x42)
DataType:需要交换的数据类型,1字节。

1,字节;2,字,3,浮点型。

DataNum:要读取的数据的数量,1字节。

DataAddr:为数据偏移地址2字节,低字节在前,高字节在后。

数据偏移地址以字节为单位。

Data:实际传输的数据,低字节在前,高字节在后。

DataLong: 单片机返回Data的字节数,2字节,低字节在前,高字节在后。

BitOffset:位操作写命令时,在字节中的位的偏移(0~7)。

LRC:为从第一个字节至LRC前的所有字节的异或值,1字节。

EndCode:
如果结束码EndCode为异常值,则该数据侦的数据无效。

相关文档
最新文档