一、基本格式:
通信头->巴克码->地址字->长度字->命令字->信息位->校准字
1. 通信头:占1~8个字节,表通信开始(0x00、0xff不能用作通信头);
2.巴克码:占1字节,一般为0x72,表通信头结束;
3.地址字:表终端的地址,占1字节(0x00作为广播地址);
4.长度字:占1字节,表示从地址字到信息位之间的字节数;
5.命令字:占1字节,指示终端的不同操作;
6.信息位:不定长,从0~252字节;
7.校验位:两个字节,采用和校验及CRC校验。
二、应答
1.如果终端接收正确,则应答ACK;如果终端接收错误,则应答NAK;
2.发送方收到ACK,此次通信结束;
3.发送方收到NAK,重发刚才的命令字(最多7次);
4.如果发送方发完数据后无应答,隔0.5~1S后重发(最多7次)。
三、ACK/NAK的格式
通信头->巴克码->地址字->长度字->命令字->0x06、0x06、、0x06(1~8个)
(若信息位长时,分包传输,信息位的第一位是包号0x01,最后1包为0xff)
关键字:c51 单片机 通信协议
引用地址:
c51单片机实用通信协议
推荐阅读最新更新时间:2024-03-16 13:48
程序的思考(从单片机到PC)
关于程序的执行,以前想的不多,没有意识到一个程序在运行时,从哪里读指令,数据又写在哪里。 最近在看CSAPP时这个念头经常在脑袋中晃荡。 从单片机上知道,在上电的那一刻,MCU的程序指针PC会被初始化为上电复位时的地址,从哪个地址处读取将要执行的指令,由此程序在MCU上开始执行(当然在调用程序的 main之前,还有一系列其他的的初始化要做,如堆栈的初始化,不过这些我们很少回去修改)。PC在上电时,和MCU差不多,不过读取的是BIOS,有它完成了很多初始化操作,最后,调用系统的初始化函数,将控制权交给了操作系统,于是我们看到了Windows,Linux系统启动了。如果将操作系统看作是在处理器上跑的一个很大的裸机程序(就是直接在
[单片机]
基于单片机的太阳能LED路灯控制器设计
面对地球生态环境日益恶化、资源日益短缺的现实,当今世界各国政府采取了很多政策和措施,大力扶持和发展节能环保产业。 太阳能LED 路灯是太阳能开发利用和照明领域节能技术的综合应用,具有环保节能的双重优势。 据统计,照明消耗约占整个电力消耗的20% 左右,降低照明用电是节省能源的重要途径。 太阳能具有清洁环保和可再生的特点,而LED 照明是当前世界上最先进的照明技术,是继白炽灯、荧光灯、高强度气体放电灯之后的第四代光源,具有结构简单、效率高、重量轻、安全性能好、无污染、免维护和寿命长、可控性能强等特征,被认为是照明领域节电降能耗的最佳实现途径。 有统计数据显示,仅LED 路灯节能一项,每年就能为中国节省约一座三峡大坝所发的电力。
[单片机]
采用STC89C52单片机的温度控制系统设计
本文给出了采用STC89C52单片机进行自适应控制来控制PWM波,进而控制电炉的加热,以实现温度控制的设计方法。这套温度测控系统弥补了传统PID控制结构在特定场合下性能下降的不足。与传统的系统相比,该电路结构简单,测温精度高,温度控制误差小,并在不同时间常数下均可达到技术指标。文章同时给出了用串口调试精灵将PID控制器的输出和温度采样值显示在PC机上,以方便温度的监控的实现方法。 目前,水温控制被广泛应用于食品、医药、化工、家电等很多领域,水温控制的好坏直接影响着产品的品质,因此,水温控制具有十分重要的意义。本设计的任务与要求为1 L水由1 kW的电炉加热,要求水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动调
[单片机]
以微控制器为核心的停车场管理功能板设计
一、前言: PHILIPS公司的P89C58基于 80C51内核采用PHILIPS高密度CMOS技术设计制造,具有8k字节非易失性Flash只读程序存储器EPROM、3个16位定时/计数器和6个中断源,4层优先级中断嵌套结构,可用于多机通信的串行I/O口,I/O扩展或全双工UART。此外,P89C51采用低功耗静态设计,宽工作频率 (DC-33MHz),宽工作电压范围(2.7-5.5V),两种软件方式选择电源空闲和掉电模式。本设计采用P89C58作为核心处理器,用于实现停车场现代化管理的智能电子板,其内设置了一套智能并且完善的逻辑控制处理流程,在其周边搭配一套读卡器、两个地感就和一个液晶显示器就能方便而高效地实现一个大型停车
[单片机]
用单片机数码管和矩阵按键实现密码锁功能
用数码管和矩阵按键实现密码锁功能,我的理解是实现输入数据并判断数据是否和密码一致,并且更改密码。矩阵按键是4×4的,图在下面。先说功能,初始密码值4321。第一部分:当数码管未进行闪烁的时候,按下S11是进行数据和密码的比较,当正确时数码管显示1111,错误显示2222。按下S12进行数据移位(口误了,应该是 数据选择 而不是数据移位,但意思大家一定要理解,因为下面的我都口误了),这时数码管闪烁,你按下S1到S10可以进行设定,当按四次S12的时候 或者按下S13 可以不闪烁了,这时按下S11才能进行数据比较(意思是只有不闪烁才能进行数据比较)。这是数据和密码的比较。第二部分:当数码管不进行闪烁的时候才能进行密码的更改,按下
[单片机]
高精度低成本车用超声波传感器的研制
本文介绍了利用超声波传感器实现无接触式测距。系统由AT89C2051 单片机、超声波电路、环境温度电路及显示电路组成。该测距仪具有高精度(±1mm)、低成本的特点。 引言 超声波测距主要应用于非接触测量领域。目前测距专用超声波系统由于成本高等的原因,在一些中小规模的应用领域中难以广泛应用。随着汽车智能化的发展,需要研制出能够以更高的精度测距的新式传感器,且成本低廉。但是以往的超声波传感器由于高精度的要求,结构复杂,且不能够根据不同的环境自动调节,成本高,适应性差。本文介绍一种以AT89C2051 单片机为核心的低成本、高精度的数字显示超声波测距仪的研制。由于这种超声波传感器可以测试周围环境温度并可自我调节,性价
[汽车电子]
16.STC15W408AS单片机获取DS18B20温度
之前在树莓派系列的文章中写过DS18B20获取温度数据。当时树莓派有1-wire接口,可以直接以读文件的形式读取到温度。18.树莓派3B+ 1-wire获取DS18B20温度 现在在STC单片机里面没有这个接口,只能使用GPIO模拟单总线的时序来读取DS18B20的温度数据了。 DS18B20的特点 Unique 1-Wire interface requires only oneport pin for communication Can be powered from data line. Power supplyrange is 3.0V to 5.5V Measures temperatures fro
[单片机]
基于C8051F311单片机实现汽车座椅自动控制系统的软硬件设计
引言 随着人们生活水平的提高,对汽车座椅的舒适性要求也越来越高,要求对汽车座椅地调节能够更加简单、方便、快捷。目前,汽车座椅位置的调节多采用基于手动调节方式的机械和电动控制两种方式。汽车座椅位置的调节主要有三个方向,即高度调节、水平位置调节以及座椅靠背倾角的调节。 对于家庭使用的汽车,往往由多个成员驾驶同一辆汽车;当不同的驾驶者坐在同一个座椅时,由于个人的身体差异,所需要的汽车座椅的位置各不相同,需经常调节座椅位置;而目前的大部分汽车座椅没有记忆功能,使同一个人在不同的时间驾驶汽车时,汽车座椅的位置可能被其他成员改变,而需重新调节座椅各个方向位置,比较繁琐。 座椅在汽车内安装时,由于不同汽车的内部空间不相同,座椅在各方向所
[单片机]