㈠ 基于C8051F020单片机的RS485串行通信设计
基于C8051F020单片机的RS485串行通信设计在计算机网络和工业控制系统中广泛应用。RS485通信采用差分方式,有效消除噪声,对共模干扰抑制能力强,广泛应用于工业控制等领域。
实现单片机与计算机之间的RS485通信有多种方法,一般分为两种:一种是采用RS232与RS485电平转换装置,硬件装置安装简便,软件编程相对简单,但通信速率被限制在20 kb/s以内。另一种方法是采用RS485通信卡,通信距离较远,速率可达10 Mb/s,但需要安装通讯卡和驱动程序,并进行必要的设置。本文将详细介绍采用RS485通信卡进行RS485串行数据通信的方法。
系统采用C8051F020单片机对测控系统进行数据采集,该单片机性价比高,具有与8051指令集兼容的CIP-51内核,有助于提高开发效率。测控计算机采用研华的IPC-610工控机,并选用PCL一846B通信卡进行RS485串行数据通信。为了实现单片机与工控机之间的RS485串行通信,需要对单片机的UART输出电平进行转换。选用MAX485接口芯片,该芯片结构简单,能将UART输出电平转换为RS485电平。
设计中,理论上可以实现一台工控机(安装1块RS485通信卡)对128台单片机进行Rs485串行通信。硬件设计包括C8051F020单片机、MAX485芯片和RS485通信卡。C8051F020单片机具有增强型全双工UART、SPI总线和SMBus/IC,可以向CIP-51内核产生中断,硬件实现串行总线,不共享定时器、中断或I/O端口等资源。MAX485芯片用于将UART输出电平转换为RS485电平,PCL-846B通信卡具有较强的抗干扰能力和通信速率,支持RS422和RS485两种串行通信接口标准。
电路设计采用UART串行总线进行通信,C8051F020单片机与MAX485芯片连接时,使用单片机的一个引脚来控制RE和DE这两个引脚。PCL-846B通信卡连接单片机进行通信,并通过交叉开关配置寄存器选择通信通道。在使用RS485通信卡进行通信时,需要在通信线路的两端各连接一个终端匹配电阻,以保证阻抗匹配,防止信号反射问题。
软件设计包括通信方式选择、波特率设置和软件流程编写。C8051F020单片机的UART0提供4种工作方式,选择方式1进行多机通信。波特率根据数据传输速率的实际需要确定,并通过定时器计算出定时器2的重装载寄存器的初始值。软件流程利用C语言编写,通过中断服务程序实现串口通信。
实验分析结果显示,设计的系统在多台单片机与多台上位机进行远距离通信时,RS485通信均正常可靠,达到设计要求。通过上位机上的串口调试助手可以简便地对串口进行调试,实时发送和接收串行数据,动态观察各通信节点的数据收发情况。
㈡ 单片机通过485如何避免通信冲突,比如要发送数据,但是串口在接受数据,这样是不是就要错过此次发送数据了
单片机通过485通信, 属于准双向通讯,在接收时不能发送,上位机与下位机通讯,
一般为 上位机 发送 指令 或者 数据,下位机接收完成后 判断 是指令还是数据,
并返回 执行状态 和 数据。
就是 有接收完成 后 马上 返回数据 给 上位机。即 上位机与下位机的收发协议。
如果 随意发送数据,那肯定会乱套了。
㈢ RS485主从式多机(单片机)通信,从机的地址是怎么确定或定义的
从机的地址是遵循协议,根据协议定义的。
RS485主从式多机通讯协议的数据传输协议:此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。
此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息按本协议发出。
(3)单片机的485通讯扩展阅读
主从式多机通讯协议的错误检测方法:
1、超时检测
用户要给主设备配置-预先定义的超时时间间隔,这个时间间隔要足够长,以使任何从设备都能作为正常反应。如果从设备检测到一传输错误,消息将不会接收,也不会向主设备作出回应。这样超时事件将触发主设备来处理错误。发往不存在的从设备的地址也会产生超时。
2、CRC检测
CRC域是一个字节,检测了整个消息的内容。它由传输设备计算后加入到消息中。接收设备重新计算收到消息的CRC,并与接收到的CRC域中的值比较,如果两值不同,则有误,从设备对本消息不作回应。
通讯网络只设有一个主机,所有通信都由他发起。网络可支持254个之多的远程从属控制器,但实际所支持的从机数要由所用通信设备决定。
㈣ 单片机与单片机之间的通信
在单片机与单片机之间的通信中,可以采用串行总线的方式,具体来说,可以选择485或者CAN(控制器局域网)协议。485协议能够以大约1200波特率运行,适用于大多数常见应用,而CAN协议则可以达到更高的速度,大约4800波特率,满足了更多高性能需求。
在实际应用中,当数据传输速率需求超过1500波特率时,建议考虑使用中继器来延长通信距离,或是选择无线通信技术,以确保稳定和高效的数据传输。中继器可以有效扩展通信范围,而无线通信技术则提供了更大的灵活性,能够实现远距离传输。
选择合适的通信方式对于保证单片机之间的有效通信至关重要。485协议因其成本效益高、可靠性好而被广泛采用,尤其适合小型网络和低速应用。而CAN协议则因其强大的抗干扰能力和高可靠性,在汽车电子、工业控制等领域得到了广泛应用。
无论是485还是CAN,都需要根据具体的应用场景来选择。例如,在需要高传输速率、高可靠性且通信距离较近的应用中,CAN协议将是更好的选择。而在需要低成本、长距离通信的应用场景中,485协议则更为合适。此外,如果应用场景对传输距离有较高要求,或是需要在复杂的电磁环境中工作,那么无线通信技术将是最佳方案。
总之,单片机之间的通信方式多种多样,选择适合的技术方案将直接影响到系统的性能和可靠性。在进行设计时,需要综合考虑应用需求、成本、可靠性等因素,以确保通信系统的最佳性能。