"); //-->
异步串口是目前工业设备最主要的通讯接口之一。在具体的工业现场中,串口的电气接口以RS232和RS485最为普遍。英创公司的工控主板产品在串口方面都有较强的配置,如EM9160、EM9260、EM9360都有6个独立串口,这些串口大多以TTL信号形式从板卡的管脚输入输出,客户需要在自己的应用底板上加入相应的驱动电路单元,以获得所需的串口接口,如RS232或RS485。在实际的应用中,由于现场的设备串口接口的情况并不确定,这样就要求客户设备同时具备RS232和RS485两种接口的功能。本文的主要目的就是介绍同时驱动RS232和RS485两种串行接口的电路原理,以及在应用程序中相应的设置要求。
图1 同时驱动RS232和RS485接口电路
英创公司的ARM9工控主板均预装了Windows CE操作系统,CE操作系统提供了完备的串口操作API函数,这些函数可在eVC环境下直接调用。对RS232接口,应用没有任何专门操作,只需打开串口,设置串口的基本参数,如波特率等,就可以进行接口的读写了。对RS485接口,若需要使用RTS方向控制方案,则在设置串口参数时,需要特别地把RTS控制段设置为RTS_CONTROL_TOGGLE,相关的代码如下所示:
DCB dcb; // 定义参数控制块
GetCommState( m_hSer, &dcb ); // 读取当前参数块
dcb.fRtsControl = RTS_CONTROL_TOGGLE; // 设置RTS方向控制
SetCommState(m_hSer, &dcb); // 重设串口参数
上述代码中m_hSer为打开串口文件“COMx:”的文件句柄。
为了充分利用工控主板的管脚资源,英创公司的EM9160、EM9260、EM9360这三种嵌入式工控主板的串口RTS信号一般都是与GPIO信号复用管脚的。在缺省配置下,EM9160和EM9260只有COM2和COM4支持RS485的RTS方向控制方案,而EM9360的6个串口均支持RS485的RTS方向控制方案。具体的管脚配置如下表所示:
注意:所有的RTSn管脚都是低电平有效的信号,即RTSn平时为高,串口处于接收状态;RTSn变低(RTS处于有效状态)表示串口处于发送状态。
板卡型号 |
串口号 |
RTSn管脚 |
备注 |
EM9160或 EM9260 |
COM2 | RTS2n(CN1.16#) | |
COM4 | GPIO6(CN1.35#) | ||
EM9360 | COM2 | GPIO6(CN2.25#) |
当使用任何RTSn功能时, |
COM3 | GPIO7(CN2.26#) | ||
COM4 | GPIO8(CN2.27#) | ||
COM5 | GPIO9(CN2.28#) | ||
COM6 | GPIO10(CN2.29#) | ||
COM7 | GPIO11(CN2.30#) |
查看全文
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。