EM9280是英创公司即将推出的新型工控主板产品。EM9280作为第一款板载8个独立的异步串口(UART),而有别于公司的其他主板产品。8个串口的配置,可满足在绝大多数应用场合的需求,从而帮助客户进一步降低整机成本,加快产品的入市时间。本文主要是介绍EM9280各个串口的应用特色。
在Window CE6.0系统中EM9280的8个串口分别命名为“COM2:”-“COM9:”,其基本特性如下表所示:
EM9280串口 | 物理接口 | 简要说明 |
“COM2:” | RTS/CTS流控 | 作为GPRS模块接口,RTS/CTS与GPIO复用 |
“COM3:” | RX/TX三线制 | 独立串口,缺省配置为RS232电平 |
“COM4:” | RX/TX三线制 | 独立串口,最高波特率可达3Mbps |
“COM5:” | RX/TX三线制 | 独立串口,最高波特率可达3Mbps |
“COM6:” | RX/TX三线制 | 与GPIO10–GPIO11复用管脚 |
“COM7:” | RX/TX三线制 |
独立低速串口,适合作RS485, 推荐波特率 1200bps–19200bps |
“COM8:” | RX/TX三线制 | |
“COM9:” | RX/TX三线制 |
在标准的EM9280中,只有COM3的接口是RS232电平(±9V),其他的都是3.3V的TTL电平信号,在无数据收发时均为高电平。EM9280为了突出串口的应用,大部分串口都采用独立管脚引出,这样同时还可提高其GPIO的利用率。在8个串口中,COM2–COM6为iMX283芯片内部的串口单元,由于DMA的支持,因此可实现高达3Mbps的波特率。在使用高波特率时,需注意接口驱动芯片的速度及传输距离的影响。
COM7–COM9则属于低速串口,尽管最高波特率可达57600bps,但推荐使用的波特率为1200bps–19200bps。由此可见COM7–COM9特别适合作为RS485来使用。在EM9280的评估底板中,COM7 – COM9都配置成RS485接口,以方便用户评估。
在RS485的应用中,用户还可以设置某一位GPIO作为硬件RTS方向控制,具体编程方法如下:
1. 设置DCB参数块中的fRtsControl为RTS_CONTROL_TOGGLE。
DCB SerDCB;
SerDCB.DCBlength = sizeof( DCB );
GetCommState( m_hSer, &SerDCB ); // 读取当前DCB
SerDCB.fRtsControl = RTS_CONTROL_TOGGLE;
SetCommState( m_hSer, &SerDCB ); // 再设置回串口驱动
2. 通过DeviceIoControl来指定具体作为RTS的GPIO管脚。以GPIO24为例:
#include “bsp_drivers.h”
DWORD dwRTSPin = GPIO24;
bRet = DeviceIoControl(m_hSer, // file handle to the driver
IOCTL_SET_UART_RTS_PIN, // I/O control code
&dwRTSPin, // in buffer
sizeof(DWORD), // in buffer size
NULL, // out buffer
0, // out buffer size
NULL, // pointer to number of bytes returned
NULL); // ignored (=NULL)
可用作硬件RTS方向控制的GPIO管脚有:GPIO6–GPIO7;GPIO20–GPIO31。若应用程序选择其他GPIO作为RTS,设置函数将返回FALSE。
全部0条评论
快来发表一下你的评论吧 !