異步串行通訊口(UART)是在工業(yè)自動化中應(yīng)用最為廣泛的通訊接口之一,其接口形式包括RS232C、RS485、RS422。作為以網(wǎng)絡(luò)通訊為特色的英利嵌入式Linux主板,常常會面臨支持多串口的應(yīng)用。如按照國電標(biāo)準(zhǔn),對于智能電表終端設(shè)備就有8串口的要求;國家環(huán)保局對監(jiān)測設(shè)備的標(biāo)準(zhǔn)規(guī)范中也有8串口的要求等。目前英利EM9x60系列工控主板上均自帶6個(gè)串口,為了方便客戶高效、低成本地實(shí)現(xiàn)多串口的擴(kuò)展,我們專門設(shè)計(jì)了采用USB接口轉(zhuǎn)換的2串口擴(kuò)展單元ETA501作為客戶實(shí)際擴(kuò)展的參考。ETA501模塊利用英利工控主板上的一個(gè)USB接口即可很方便地實(shí)現(xiàn)基于英利Linux嵌入式主板的8串口應(yīng)用方案。同時(shí),通過精簡ISA總線擴(kuò)展串口的應(yīng)用方案參見《英利工控主板10串口應(yīng)用方案》。
本文將以EM9460為例介紹ETA501的使用方法,該方法同樣適用于英利的其他Linux嵌入式主板產(chǎn)品,如EM9160、EM9260等。
該方案的系統(tǒng)構(gòu)成如下圖所示:
由EM9460嵌入式主板與ETA501構(gòu)成的8串口系統(tǒng)
ETA501是USB轉(zhuǎn)雙串口擴(kuò)展模塊,USB2.0兼容,支持即插即用。擴(kuò)展的每個(gè)串口通道支持7、8或9位數(shù)據(jù)位,1或2位停止位,奇偶校驗(yàn);支持從50bps到12Mbps的通訊波特率;具有自動硬件或軟件流控功能。用戶可通過以下步驟來快速實(shí)現(xiàn)8串口應(yīng)用方案:
1、原型評估
ETA501產(chǎn)品外觀及結(jié)構(gòu)布局如下:
ETA501 USB轉(zhuǎn)雙串口模塊
ETA501布局圖
其中,CN1和CN2是兩個(gè)9線TTL電平串口(輸出高電平3.3V,輸入5V兼容),它們按相同的線序排列,信號定義如下:
信號名稱及簡要描述 | PIN# | 信號名稱及簡要描述 | |
DCD# | 1 | 2 | DSR# |
RXD | 3 | 4 | RTS# |
TXD | 5 | 6 | CTS# |
DTR# | 7 | 8 | RI# |
GND | 9 | 10 | VCC(+5V) |
CN3:標(biāo)準(zhǔn)USB Plugs,信號定義如下:
信號名稱及簡要描述 | PIN# |
1 | V BUS(+5V) |
2 | D- |
3 | D+ |
4 | GND |
通訊指示燈:
D1:TXD1——擴(kuò)展串口1數(shù)據(jù)發(fā)送指示燈
D2:RXD1——擴(kuò)展串口1數(shù)據(jù)接收指示燈
D3:TXD2——擴(kuò)展串口2數(shù)據(jù)發(fā)送指示燈
D4:RXD2——擴(kuò)展串口2數(shù)據(jù)接收指示燈
從英利公司購買EM9x60開發(fā)評估套件和ETA501,通過USB進(jìn)行連接,可進(jìn)行快速的功能評估。USB轉(zhuǎn)串口的驅(qū)動程序已經(jīng)固化在英利嵌入式Linux工控主板中,在此基礎(chǔ)上,客戶可利用英利公司為ETA501提供的基本通訊應(yīng)用程序源代碼快速評估多串口擴(kuò)展單元的基本性能是否滿足其具體的應(yīng)用需求。
2、設(shè)計(jì)應(yīng)用產(chǎn)品
ETA501的接插件布局以及信號定義詳見《ETA501 USB轉(zhuǎn)雙串口模塊使用手冊》,客戶在作具體應(yīng)用設(shè)計(jì)時(shí),可將ETA501直接設(shè)計(jì)在相應(yīng)的應(yīng)用電路中,根據(jù)需要修改各個(gè)串口的驅(qū)動形式,如RS232C、RS485、RS422等。在應(yīng)用底板設(shè)計(jì)過程中當(dāng)然還需要參考相應(yīng)嵌入式Linux主板的評估底板電路原理圖和PCB圖。
3、應(yīng)用程序開發(fā)
在Linux應(yīng)用環(huán)境中對擴(kuò)展的雙串口的編程方法與標(biāo)準(zhǔn)的串口應(yīng)用程序完全一樣,只是需要注意打開擴(kuò)展串口的設(shè)備名稱有所不同,對于擴(kuò)展串口需采用“/dev/ttyUSBx”,而不是板卡上的串口名稱“/dev/ttySx”。
英利所提供的擴(kuò)展驅(qū)動庫文件放置在根文件系統(tǒng)/lib/modules/2.6.30目錄下,相關(guān)的驅(qū)動文件包括:
/lib/modules/2.6.30/usbserial.ko
/lib/modules/2.6.30/vizzini.ko
在使用時(shí)需要首先載入該驅(qū)動功能模塊,在Linux操作系統(tǒng)下,一般是利用系統(tǒng)的內(nèi)部指令insmod來實(shí)現(xiàn)向系統(tǒng)內(nèi)核載入模塊:
[root@EM9X60 /mnt/nandflash]# insmod /lib/modules/2.6.30/usbserial.ko
[root@EM9X60 /mnt/nandflash]#insmod /lib/modules/2.6.30/vizzini.ko
在嵌入式領(lǐng)域的應(yīng)用中,往往是需要自動加載模式的方式,這一功能可通過編程來實(shí)現(xiàn),利用C++中的構(gòu)造函數(shù)以及析構(gòu)函數(shù)可以很好地實(shí)現(xiàn)驅(qū)動功能模塊的自動載入和自動卸載。
定義一個(gè)class CSerial 串口通訊類,在該類中主要實(shí)現(xiàn)串口通訊應(yīng)用的功能。
其構(gòu)造函數(shù):
CSerial:: CSerial ( )
{
system( 'insmod /lib/modules/2.6.30/usbserial.ko' ); // 載入擴(kuò)展串口驅(qū)動模塊
system( 'insmod /lib/modules/2.6.30/vizzini.ko' );
}
對應(yīng)的析構(gòu)函數(shù):
CSerial::~CSerial( )
{
system( 'rmmod vizzini.ko' ); // 卸載驅(qū)動模塊
system( 'rmmod usbserial.ko' );
}
應(yīng)用程序中,一旦定義了class CSerial 的實(shí)例就實(shí)現(xiàn)了鍵盤模塊的自動載入。后續(xù)就可按照標(biāo)準(zhǔn)打開串口設(shè)備文件的方式操作擴(kuò)展串口。在Linux系統(tǒng)中,所有的設(shè)備文件都位于“/dev”目錄下,EM9460板卡上6個(gè)串口所對應(yīng)的設(shè)備名依次為:“/dev/ttyS1”、“/dev/ttyS2”、“/dev/ttyS3”、“/dev/ttyS4”、“/dev/ttyS5”、“/dev/ttyS6”,通過ETA501 USB轉(zhuǎn)雙串口的設(shè)備名依次為:“/dev/ttyUSB0”、“/dev/ttyUSB1”。
為了方便統(tǒng)一應(yīng)用程序,可以做以下的操作,如:
if( PortNo>6 )
sprintf( portname, '/dev/ttyUSB%d', PortNo-6); // PortNo為串口端口號,從7開始
else
sprintf( portname, '/dev/ttyS%d', PortNo ); // PortNo為串口端口號,從1開始
m_fd = open( portname,O_RDWR | O_NOCTTY | O_NONBLOCK);
具體串口通訊的細(xì)節(jié)可參考《英利Linux工控主板應(yīng)用程序編程手冊》中的相關(guān)章節(jié)。如果還需要更多的串口擴(kuò)展,可參閱《英利工控主板10串口應(yīng)用方案》中的介紹作進(jìn)一步的串口擴(kuò)展。客戶可以綜合這兩個(gè)方案并進(jìn)行拓展應(yīng)用,以擴(kuò)展出符合自己需求數(shù)量的串口。
-
Linux
+關(guān)注
關(guān)注
87文章
11506瀏覽量
213480 -
嵌入式主板
+關(guān)注
關(guān)注
7文章
6100瀏覽量
36256
發(fā)布評論請先 登錄
ETA501 USB轉(zhuǎn)雙串口模塊使用手冊詳細(xì)資料免費(fèi)下載

EM9460工控主板數(shù)據(jù)手冊資料免費(fèi)下載
英創(chuàng)信息技術(shù)EM9560工控主板簡介
英創(chuàng)信息技術(shù)EM9560工控主板GPIO的使用介紹
英創(chuàng)信息技術(shù)EM9560工控主板專用數(shù)字IO的使用介紹

英創(chuàng)信息技術(shù)EM9X60利用串口實(shí)現(xiàn)ISO7816介紹

英創(chuàng)信息技術(shù)EM9460 USB虛擬串口應(yīng)用簡介

英創(chuàng)信息技術(shù)其他功能模塊簡介
Ansys EM工具包用于開關(guān)電源磁性器件電熱耦合仿真的使用方法
EVAL-AD9460 EVAL-AD9460評估板
MegaRAID SAS 9460-16i和SAS 9460-8i RAID安裝指南

評論