異步串行通訊口(UART)是在工業(yè)自動化中應(yīng)用最為廣泛的通訊接口之一,其接口形式包括RS232C、RS485、RS422。作為以網(wǎng)絡(luò)通訊為特色的英創(chuàng)嵌入式主板產(chǎn)品,常常會面臨支持多串口(串口數(shù)量通常超過6個)的應(yīng)用。在通常情況下串口的數(shù)據(jù)收發(fā)均采用硬件中斷驅(qū)動,但對于多串口的應(yīng)用,由于系統(tǒng)資源的限制,不可能為每一個串口控制器提供一個獨立的中斷,而必須采用中斷共享的技術(shù),在WinCE環(huán)境中,中斷共享還涉及到更為復(fù)雜的驅(qū)動程序。為了方便客戶能高效、低成本的實現(xiàn)多串口的擴展,英創(chuàng)公司專門設(shè)計了采用硬件中斷共享技術(shù)的4串口擴展單元ETA503,作為客戶實際擴展的參考。
本文將以EM9000嵌入式主板作為系統(tǒng)的嵌入式主板,具體介紹ETA503的使用方法,該方法同樣適用于英創(chuàng)的其他嵌入式主板產(chǎn)品,如EM9260、EM9360、ETR232H等。客戶可參考本文及ETA503的資料,快速實現(xiàn)自己的多串口產(chǎn)品。
注意,本文所介紹的串口擴展方法的基本特點是每4個異步串口共享一個獨立的硬件中斷,對EM9000、EM9260等模塊,可擴展一組4個串口,而EM9360由于總線上支持多個獨立外部中斷,所以可擴展2組共8個異步串口。盡管理論上可以擴展更多的串口,但考慮到系統(tǒng)的綜合處理能力,在軟件上我們把擴展串口數(shù)量的上限定在2組8個。
系統(tǒng)構(gòu)成
ETA503是基于英創(chuàng)精簡ISA總線(接口信號如圖3所示)的4串口擴展單元,其輸出接口均為9線制(接口信號如圖4所示)的RS232C。與嵌入式主板的連接關(guān)系如圖1所示:
ETA503采用工業(yè)標準的16C550作為每個串口的控制器,而每個16C550將占用8個精簡ISA總線的8位數(shù)據(jù)端口,ETA503經(jīng)過精心設(shè)計,并不占用額外的數(shù)據(jù)端口,所以整個ETA503只占用8×4 = 32個精簡ISA總線的8位數(shù)據(jù)端口,使用片選CS1#和地址線SA0 – SA4。
用戶可通過以下步驟來快速實現(xiàn)多串口應(yīng)用方案:
原型評估
從英創(chuàng)公司購買一套ETA503多串口擴展單元(如圖2所示)以及英創(chuàng)的嵌入式主板,通過精簡ISA總線相連接起來,可進行快速的功能評估。對于 ARM9系列的產(chǎn)品,如EM9000、EM9260、EM9360等,多串口的驅(qū)動程序?qū)⒓虞d到內(nèi)核;對x86的產(chǎn)品,如ETR232i、ETR232H等,將提供多串口的串口驅(qū)動程序。在此基礎(chǔ)上,客戶可利用英創(chuàng)公司為ETA503提供的基本通訊應(yīng)用程序源代碼,快速評估多串口擴展單元的基本性能是否滿足其具體的應(yīng)用需求。
設(shè)計應(yīng)用產(chǎn)品
ETA503多串口擴展單元由包括1個16C554(等效為4個16C550),如圖2所示。客戶在作應(yīng)用設(shè)計時,可將ETA503當作一個元器件,由插針直接插在相應(yīng)的應(yīng)用電路中,根據(jù)需要修改各個串口的驅(qū)動形式,如RS232C、RS485、RS422等。如果客戶的應(yīng)用主板需要同時包括英創(chuàng)的嵌入式主板模塊,則還需要參考相應(yīng)嵌入式主板的評估底板電路原理圖和PCB圖。
應(yīng)用程序開發(fā)
在WinCE應(yīng)用環(huán)境中對擴展的多串口的編程方法與標準的串口應(yīng)用程序完全一樣,注意在打開串口號大于9的串口時,需要使用“\\$device\\COMxx”,而不是通常的“COMx:”。考慮到共享中斷的異步特性,各個串口可能同時請求中斷,從而產(chǎn)生極高的中斷頻率,所以建議客戶把低波特率的串口通道,如9600bps或以下的波特率,配置在擴展串口上,以均衡CPU對各個硬件設(shè)備的開銷;相應(yīng)地把需要使用高波特率的通道配置到英創(chuàng)嵌入式主板自帶的串口通道上,如EM9360的COM2 – COM7,這些串口均配置有獨立的硬件中斷。在WinCE標準的串口驅(qū)動程序中為每個串口分配了2KB的接收數(shù)據(jù)緩沖區(qū),所以各個串口上層處理線程可參考buffer的深度,采用合適的響應(yīng)方式,以最大限度的避免線程空轉(zhuǎn)所帶來的CPU時間的無謂消耗。
對作為多串口服務(wù)器的應(yīng)用,如果嵌入式主板選用ARM9系列產(chǎn)品,就可利用WinCE提供的 Web服務(wù)器功能來方便實現(xiàn)對各串口參數(shù)的設(shè)置,WinCE下的Web支持ASP網(wǎng)頁;對x86產(chǎn)品,則可在應(yīng)用程序連接英創(chuàng)為x86產(chǎn)品提供的Web服務(wù)器庫以及客戶編寫的cgi C代碼。
在英創(chuàng)嵌入式主板的缺省配置中沒有加載擴展多串口的驅(qū)動程序。對需要使用多串口擴展功能的客戶,在購買英創(chuàng)嵌入式主板時需向英創(chuàng)商務(wù)人員說明其需求,我們將根據(jù)客戶的需求加載一組(4個)串口或2組(8)串口的驅(qū)動程序。
驅(qū)動程序版權(quán)說明
英創(chuàng)公司的多串口驅(qū)動程序已申請軟件產(chǎn)品保護,客戶可以在英創(chuàng)嵌入式主板上免費使用該驅(qū)動程序,但禁止在其他的第三方平臺上使用英創(chuàng)公司的多串口驅(qū)動程序。
成都英創(chuàng)信息技術(shù)有限公司 028-8618 0660