资源描述:
《片机串口通信485modbu》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、项目七单片机通信实践知识目标:1.了解UART(UniversalAsynchronousReceive/Transmitter通用异步收发器。2.了解MAX232通信原理及标准的通信协议。3.了解MODBUS通信协议标准2.采用通信芯片MAX485,及多机通信原理。技能目标:1,根据数据格式的协议,数据交换的协议要求硬件连接,实现串行通讯的硬环境。2.MCU与PC机及多个单片机的硬件连接方法3.应用PROTEUS仿真工具软件绘制硬件连接图4.使用KeilC完成程序的编写和调试5.使用最小系统板实现硬件调试任务一基于RS232的点对点通信
2、任务提出通过MAX232直接应用UART(UniversalAsynchronousReceive/Transmitter通用异步收发器,实现单片机与单片机,或单片机与PC微机之间数据传送。知识准备7.1.1串行与并行通信在实际工作中,计算机与外部设备之间常常要进行信息交换,计算机与计算机之间也要交换信息,所有这些信息交换可称为通信。在我们前面所学的知识中所涉及的数据传送都是采用并行方式,如单片机与存储器,的数据传送,存储器与存储器的数据传送,单片机与并行打印机之间的数据传送,CPU处理数据以8位数据并行方式同时一次传送一字节的数据,这样
3、的传送方式要求用8条数据线和若于条控制信号线,传送距离较近。当计算机与计算机之间的距离较远时过多的电缆使这种方式不够经济。串行通信是用一位数据线传送数据,只用几条电缆线作控制信号线,串行通信适合远距离数据传送,处于两地的计算机之间采用串行通信就非常的经济,当然串行通信要求通信双方具有相同的数据转换格式,规定的时间控制,相等的逻辑电路,通一的通信协议。7.1.1.1串行与并行通信基本概念1.串行通信与并行通信通信方式有两种:并行通信和串行通信。通常是根据信息传送的距离决定采用哪种通信方式,如果距离小于30cm则可采用并行通信方式,当距离大于
4、30cm时则要采用通信方式。并行通信方式是指数据的各位同时进行传送的通信方式,其优点是传送速度高,缺点是数据有多少位,就需要多少根数据传送线,单片机与外部设备之间的数据传送属于并行通信图7-1-1(a)所示为AT89C51系列单片机与外部设备间的8位数据并行通信的连接方法,并行通信方式在位数多、传送距离远的情况下就不太合适了。串行通信间数据是一位一位按顺序传送的通信方式,图7-1-1(b)所示为单片机与外部设备间的串行通信连接方式,可以看出最单间的串行连接只需三条线,因此利用电话线就可作为传输线,这样大大降低了成本,特别适用于远距离通信;
5、串行通信的缺点是传送速度较低。假设并行传送N位数据所需时间为T,那么串行传送的时间至少为NT,实际上总是大于NT的。图7-1-1两种通信方式连接2.单工、半双工和全双工串行通信的传送方式通常有3种:⑴单向(或单工),只允许数据向一个方向传送;⑵半双向(或半双工),允许数据向两个方向中的任一方向传送,但每次只能有一个站点发送;⑶全双向(或全双工),允许同时双向传送数据,全双工配置是一对单向配置,它要求两端的通信设置具有完整和独立的发送和接收能力。7.1.1.2单片机串行口发送与接受数据1.串行通信协议串行通信协议是通信双方为保证通信成功而制
6、定的一系列约定。包括数据格式定义和数据位定义等。通信双方必须遵守统一的通信协议,串行通信协议包括同步协议的异步协议两种。异步串行通信协议规定了字符的传送格式和字符传送的波特率。51系列单片机串行行口数据的发送的数据的接受采用异步通信方式,在MCU内部有一个UART(UniversalAsynchronousReceive/Transmitter通用异步收发器。在异步通信中数据是一帧一帧(包括一个字符代码或一字节数据)传送的,每一帧的数据格式如图7-1-2所示。图7-1-2串行异步通信的数据格式在帧格式中,一个字符由4部分组成:起始位、数据
7、位、奇偶校验位和停止位。首先是一个起始位(0),起始位信号只占用一位,用来通知接收设备一个待接收的字符开始到达,线路上在不传送字符时应保持为1。接收端不断检测线的状态,若连续为1以后又测到一个0,就知道发来一个新的字符,应马上准备接收,字符的起始位还被用作同步接收端的的时钟,以保证以后的接收能正确进行。然后是5—8位数据位(规定低位在前,高位在后),它可以是5位(D0—D4)、7位或8位(D0—D7)。其次是奇偶校验位(该位可省略),但在字符中也可以规定不用奇偶校验位,则这一位就可省去。民可和这一位(0/1)来确定这一帧中的字符代表代表的
8、性质(地址/数据等)。最后是停止位(1),用来表征字符的结束,它一定是高电位(逻辑1)。停止位可以是1位、1.5位或2位。接收端收到停止位后,知道上一字符已传送完毕,同时也为接收下一个字符作好