下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
51单片机uart通信协议51单片机51单片机是对所有兼容Intel8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8004单片机,后来随着Flashrom技术的发展,8004单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是51系列的单片机一般不具备自编程能力。同样的一段程序,在各个单片机厂家的硬件上运行的结果都是一样的,如ATMEL的89C51(已经停产)、89S51,PHILIPS,和WINBOND等,我们常说的已经停产的89C51指的是ATMEL公司的AT89C51单片机,同时是在原基础上增强了许多特性,如时钟,更优秀的是由Flash(程序存储器的内容至少可以改写1000次)存储器取代了原来的ROM(一次性写入),AT89C51的性能相对于8051已经算是非常优越的了。不过在市场化方面,89C51受到了PIC单片机阵营的挑战,89C51最致命的缺陷在于不支持ISP(在线更新程序)功能,必须加上ISP功能等新功能才能更好延续MCS-51的传奇。89S51就是在这样的背景下取代89C51的,89S51已经成为了实际应用市场上新的宠儿,作为市场占有率第一的Atmel公司已经停产AT89C51,将用AT89S51代替。89S51在工艺上进行了改进,89S51采用0.35新工艺,成本降低,而且将功能提升,增加了竞争力。89SXX可以向下兼容89CXX等51系列芯片。同时,Atmel不再接受89CXX的定单,大家在市场上见到的89C51实际都是Atmel前期生产的巨量库存而以。如果市场需要,Atmel当然也可以再恢复生产AT89C51。uart通信协议UART(UniversalAsynchronousReceiver/Transmitter)即通用异步收发传输器,工作于数据链路层(协议层之一)。包含了RS-232、RS-422、RS-485串口通信和红外(IrDA)等等。UART协议作为一种低速通信协议,广泛应用于通信领域等各种场合。UART基本可分为并口通信及串口通信两种。异步串口通信协议,工作原理是将传输数据的每个字符以串行方式一位接一位的传输。图1给出了其工作模式:其中每一位(bit)的意义如下:起始位:先发出一个逻辑“0”的信号,表示传输字符的开始。数据位:紧跟起始位之后。数据位的个数可以是4、5、6、7、8等,构成一个字符。通常采用ASCII码。从最低位开始传送,靠时钟来定位。奇偶校验位:数据位加上这一位后(跟在数据位尾部),使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性。停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平(逻辑“1”)。空闲位:处于逻辑“1”状态,表示当前线路上没有数据的传送。波特率:是衡量数据传输速率的指针。表示为每秒钟传送的二进制位数(bit数)。例如资料传送速率为120字符/秒,而每一个字符为10位,则其传送的波特率为10×120=1200字符/秒=1200波特。软件UART控制:在嵌入式系统或者计算机中,并非直接对串口直接进行操作,而是通过SCI(串行通讯接口)模块对其进行控制。(注:“SCI”首先由Motorola微串口微控制器而得名,SCI另一种说法是“UART控制器”)常用的许多芯片中都包含了SCI,例如ARM的S3C2410X芯片内嵌了3个串行接口控制器,而Nios等软核芯片则可以用选用UART(RS232)的IP对UART进行控制。PC机则常用16650UART、16750UART等控制串口。如果实现软件操作UART时,在UART检查端口管脚的串行活动时,需要占用大量时间,让应用程序停滞,这会使得软件UART没有意义。但情况并非如此,来看一下标准的10位异步串行协议(包含一个起始位,一个停止位和8个数据位)收发一个字符时的情况(如图2所示)。在启动一次发送或接收操作之后,串行UART(不论是软件还是硬件形式的UART)并不需要连续监控I/O线。在发送一个字符时,每个位周期,UART只需驱动一次发送信号线的状态,从起始位到8个数据位直到结束位依次设置每个位的电平。在接收一个字符时,UART在第一个下降沿时开始工作,之后只需在每个位时隙的中央对接收线上的信号状态进行一次采样。数字系统方面,我们可以用一对状态机来表征软件UART的行为,一个状态机用于发送字符,另一个用于接收字符。对一个全双工的UART而言,这两个状态机是并行运行的,需要两个独立的定时器中断。这两个状态机都有主动和被动两种模式。发送状态机在收到一个需发送的字符时跳出空闲状态,在结束位发送之后回到空闲状态。接收状态机在检测到接收线上的一个下降沿时跳出空闲状态。在检测到这个初始的低电平状态之后(该状态指示起始位已经开始),开始对位时隙进行递减计数,同时按要求采样信号线上的每个信号位,包括停止位。为了避免不必要地占用主应用过多的时间,UART状态机应该由一些周期性的基于定时器的中断来激活。接收线上初始下降沿的检测需要利用一个边沿触发的外部中断单独处理。如果一个状态机的定时器被设置为每个bit周期发出一个中断请求,那么该状态机在每次中断被触发时能够执行任何需要的操作(而且如果需要,还能进入到下一个状态)。用于实现状态机的代码应尽可能优化,因为只要软件UART处于活动状态,这些代码就会在后台连续运行。51单片机uart通信协议*************************************************/#defineucharunsignedchar#defineuintunsignedintbitRXAAOK;//接收到0XAA开头标志bitRXFRMOK;//接收一帧完整数据标//接收中断中如果是完整一条数据置位,主函数中//处理完毕清零ucharRXBUF[32];//接收缓存ucharRX_P;//数据个数voidUARTO_ISR()interrupt4//接收中断,不同处理器可能是不同的函数声明{uchari;//用处提取接收缓冲器的字符if(RI){i=SBUF;//提取字符RI=0;if(RXFRMOK==0)//判断是否接收到起始字符0XAA{if(RXAAOK)//如果接收到0XAA,继续接收后面的字符{RXBUF[RX_P]=i;//字符存入数组if((RX_P》3)&&(RXBUF[RX_P-3]==0xcc)&&(RXBUF[RX_P-2]==0x33)&&(RXBUF[RX_P-1]==0xc3)&&(RXBUF[RX_P]==0x3c))//判断是是否接收完毕一帧数据{RXFRMOK=1;//如果接收完成,置位RXFRMOK;RXAAOK=0;//清零开始标志位RXAAOK}RX_P++;//接收计数器加一}if(!RXAAOK&&(i==0xaa)){RXAAOK=1;RX_P=0;}}
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《化工制图基本知识》课件
- 甘肃政法大学《先进复合材料》2023-2024学年第一学期期末试卷
- 企业培训课件题目
- 三年级数学上册四两位数除以一位数的除法两位数除以一位数说课稿西师大版
- 《考试习惯指导》课件
- 三年级科学上册第1单元水8它们发生了什么变化教案2教科版
- 《作文复习分析论据》课件
- 化工生产安全用电课件
- 动物解剖生理学-25体温
- 初一安全食品课件
- 2024县级应急广播系统技术规范
- 一年级道德与法治无纸笔期末检测质量分析
- 视频剪辑师工作总结
- 新疆维吾尔自治区巴音郭楞蒙古自治州2023-2024学年二年级上学期期末数学试卷
- 华为公司服务流程
- 干细胞修复神经损伤
- ZPW-2000A四线制改变运行方向电路
- 中医跟师总结论文3000字(通用3篇)
- 电动三轮车监理细则
- 《铝及铝合金厚板残余应力测试方法 切缝翘曲法》
- GB/T 43218-2023煤炭测硫仪性能验收导则
评论
0/150
提交评论