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