閱讀 | 訂閱
閱讀 | 訂閱
控製係統

嵌入式係統中擴展串行口的幾種方法

星之球激光 來源:電子工程網2011-12-19 我要評論(0 )   

引言 串行 接口 設備憑借其控製靈活、接口簡單、占用係統資源少等優(you) 點,被廣泛應用於(yu) 工業(ye) 控製 、家庭安防、 GPS 衛星定位導航以及水、電、氣表的抄表等領域。在這些 嵌...

引言

  串行接口設備憑借其控製靈活、接口簡單、占用係統資源少等優(you) 點,被廣泛應用於(yu) 工業(ye) 控製、家庭安防、GPS衛星定位導航以及水、電、氣表的抄表等領域。在這些嵌入式係統中,可能會(hui) 有很多從(cong) 設備都通過串行接口與(yu) 主機進行通信,如GPRS MODEM、紅外發送和接收模塊、RS485總線接口等。這使得開發人員常常麵臨(lin) 嵌入式係統中主機串行通信接口不足的問題,針對此問題,本文介紹了幾種常見的解決(jue) 方法。

軟件模擬法

  軟件模擬法可根據串行通訊的傳(chuan) 送格式,利用定時器和主機的I/O口來模擬串行通訊的時序,以達到擴展串口的目的。

  接收過程中需要檢測起始位,這可以使用查詢方式,或者,在端口具有中斷功能的主機中也可以使用端口的中斷進行處理。接收和發送過程中,對定時的處理既可以使用查詢方式也可以使用定時器中斷方式。為(wei) 了確保數據的正確性,在接收過程中可以在檢測異步傳(chuan) 輸的起始信號處加上一些防幹擾處理,在接收每個(ge) 位時可以采用多次采樣。

利用並口轉串口擴展串行口

  基於(yu) Intel8251的串行口擴展

  Intel8251是一種通用的同步/異步發送器(USART),它的工作方式可以通過編程設置,並具有獨立的接收/發送器。能以同步或異步串行通信方式工作,自動完成幀格式,具有奇、偶校驗和錯誤檢測電路。

  基於(yu) TL16C554的串行口擴展

  TL16C554是TI公司生產(chan) 的4通道異步收發器集成芯片。對TL16C554串行通道的控製,是通過對控製寄存器LCR、IER、DLL、 DLM、MCR和FCR編程來實現的。這些控製字決(jue) 定字符長度、停止位的個(ge) 數、奇偶校驗、波特率以及調製解調器接口。控製寄存器可以任意順序寫(xie) 入,但是 IER必須最後一個(ge) 寫(xie) 入,因為(wei) 它控製中斷使能。串行通道內(nei) 的波特率發生器(BRG)允許時鍾除以1至65535之間的任意數,BRG根據其不同的三種通用頻率中的一種來決(jue) 定標準波特率。

  16C55x係列芯片還包括16C550、16C552,分別可以擴展1個(ge) 和2個(ge) 串行口。

利用串行口擴展串行口

  基於(yu) GM8123/25係列芯片的串行口擴展

  GM8123/25係列串口擴展芯片可以全硬件實現串口擴展,通訊格式可設置,並與(yu) 標準串口通訊格式兼容。

  GM8125可擴展5個(ge) 標準串口,通過外部引腳選擇串口擴展模式:單通道工作模式和多通道工作模式。單通道模式下,無需設置芯片的通訊格式,子串口和母串口以相同的波特率工作,同一時刻隻允許一組子串口和母串口通訊,工作子串口由地址線選擇。單通道工作模式適用於(yu) 所有從(cong) 機不需要同時通訊,並且通訊過程完全由主機控製的係統。多通道模式下,各子串口波特率相同,允許所有子串口同時與(yu) 母串口通訊,母串口以子串口波特率的6倍工作。發送時由地址線選擇用來發送數據的子串口;接收時子串口能主動響應從(cong) 機發送的數據,再由母串口發送給主機,同時由地址線返回接收到數據的子串口地址,主機在接收到子串口送來的數據後,可以根據地址線的狀態判斷數據是由哪一個(ge) 從(cong) 機發送的。

  多通道工作模式下,在進行數據通訊前要對芯片進行工作方式設置,包括串口幀格式設置和通訊波特率設置。

  通過串行口和控製引腳相互配合可對芯片進行工作方式設置,引腳MS為(wei) 0、且STADD2~STADD0為(wei) 000時寫(xie) 命令字,引腳MS為(wei) 1、 STADD2~STADD0為(wei) 000時讀命令字。進行工作方式設置時,芯片的幀格式和母串口工作波特率與(yu) 上一次進行數據通訊時一致;而複位後的幀格式為(wei) 11bit,母串口波特率為(wei) 7200bps。

       基於(yu) SP2338的串行口擴展

  SP2338是采用低功耗CMOS 工藝設計的通用異步串行口擴展芯片,它可輕鬆將主機原有的1個(ge) 串行口擴展成3 個(ge) 全新的全雙工串行口。

  SP2338適用於(yu) 1個(ge) 起始位、8個(ge) 數據位、1個(ge) 停止位的多串口係統,也就是說其幀格式是不可編程的。主機通過改變ADRI1、ADRI0地址線狀態的方式選擇3個(ge) 子串口中的任意一個(ge) ,3個(ge) 子串口的地址分別為(wei) 00、01、10。地址11用於(yu) 執行SP2338 芯片本身的複位指令0x35 或0xB5、睡眠指令0x55或0xD5、延時指令0x00。向RX0~RX3中的任意一個(ge) 接收端口寫(xie) 任意數據即可將SP2338喚醒,但由於(yu) SP2338的喚醒時間需要25ms左右,故用於(yu) 芯片喚醒的數據將不會(hui) 被主機接收。因此,可以先發送一個(ge) 字節數據用於(yu) 喚醒芯片,延時25ms後即可進行正常的數據傳(chuan) 輸。

  未使用的輸入端口,如RX0、RX1、RX2等必須連接到VCC;未使用的輸出端口,如TX0、TX1、TX2等必須懸空;未使用的ADRI0、ADRI1必須連接到GND。

  主機收發數據時序為(wei) :主機TX3接收到一個(ge) 字節後應立即讀取SP2338的輸出地址ADRO0、ADRO1的狀態,判斷接收到的數據來自哪個(ge) 子串口;主機發送數據時,首先通過ADRI0、ADRI1選擇某一個(ge) 子串口,再向TX3寫(xie) 將發送的數據。

本文設計的擴展方法

  在電路設計的過程中,本文設計出一種適合自己係統需要、將1個(ge) 串口擴展為(wei) 3個(ge) 串口的方案,如圖1所示。

  其中,4001是四2輸入端或非門,40106是六施密特觸發器。4001的4腳和9腳分別為(wei) 主機的RXD和TXD,40106的2腳和9腳為(wei) 子串口的TXD0和RXD0,6腳和11腳為(wei) 子串口的TXD1和RXD1,4腳和13腳為(wei) 子串口的TXD2和RXD2。

  根據圖的連接方式和邏輯代數的推導可得:RXD的狀態等於(yu) 40106的9腳、11腳、13腳的狀態相與(yu) 。當40106的9腳、11腳、13腳中的任意一個(ge) 有數據信號時,由於(yu) 在異步串行通訊中,無數據傳(chuan) 輸時的引腳狀態為(wei) 高,因此RXD上就能接收到有數據信號的那個(ge) 引腳上的數據狀態。40106的2腳、4 腳、6腳的狀態等於(yu) TXD的狀態,所以可以利用40106的2腳、4腳、6腳做為(wei) 子串口的TXD。

  這種設計方案適用於(yu) 主機同時向多個(ge) 串行設備發送數據,而從(cong) 設備不同時向主機發送數據的情況。再增加幾個(ge) 信號線,就可以區分出向哪一個(ge) 從(cong) 設備發送數據以及接收到的數據是來自哪一個(ge) 從(cong) 設備。在本文的係統中,主機是通信的發起者,接收到的數據來自哪個(ge) 從(cong) 設備是可以預知的,因此,隻需再增加3個(ge) 控製從(cong) 設備使能的信號線即可。

幾種方法的比較

  在需要擴展係統的串行口時,使用多串行口單片機的方法是最容易想到的。由於(yu) 串口集成在單片機內(nei) 部,因此設備體(ti) 積較小,抗幹擾能力較高,但多串口單片機通常價(jia) 格較高,而且,如果是開發人員所不熟悉的型號,還需要開發人員重新學習(xi) 並購買(mai) 與(yu) 之配套的開發工具,這延長了產(chan) 品的開發周期,也增加了產(chan) 品的開發成本。

  軟件模擬法占用的係統資源少、成本低、易於(yu) 實現。但其采樣次數較低,難以保證數據的正確性,而且一般不能模擬過高的波特率。

  並行口擴展串口方法的功能比較強大,能提供MODEM控製信號、通訊速度高,但控製複雜,占用MCU的端口資源較多,同時價(jia) 格也較高。

  利用串行口擴展串行口,控製簡單,能最大限度地減少控製線,不需要占用太多的主機係統資源,而且通用性強,性能穩定,可保證數據的正確性。 GM812x的不足之處在於(yu) :不滿足超低功耗應用要求;多通道模式下,所有子串口工作波特率隻能設置成統一值,不適用於(yu) 各從(cong) 機工作波特率不一致、又要求同時工作的係統。SP2338雖然能滿足低功耗的要求,但其子串口波特率也需要設置為(wei) 統一值,並且不能對數據幀格式編程,最高波特率也隻有9600bps。#p#分頁標題#e#

  本文提出的方法中,各個(ge) 子串口的串行特性和母串口相同,使用簡單,占用係統資源少,易於(yu) 控製(最少2個(ge) 控製信號擴展3個(ge) 串口),穩定性好。其功耗取決(jue) 於(yu) 4001和40106,它們(men) 的功耗都在mA級。其最高波特率取決(jue) 於(yu) 4001和40106的響應速度,4001和40106的最大響應延遲是250ns,所以理論上最高波特率可達4Mbps。此方法已經成功地應用於(yu) 三表遠傳(chuan) 係統。該方法的缺點是,它不能用於(yu) 從(cong) 機工作波特率不一致、又要求同時工作的係統。

結語

  本文設計了一種擴展串口的方法以解決(jue) 在實際應用中遇到的主機串行口資源不足的問題,目前該方法已經成功地應用於(yu) 三表遠傳(chuan) 係統中。在解決(jue) 這個(ge) 問題的過程中,本文也對其他解決(jue) 方案進行了比較。

轉載請注明出處。

免責聲明

① 凡本網未注明其他出處的作品,版權均屬於(yu) fun88网页下载,未經本網授權不得轉載、摘編或利用其它方式使用。獲本網授權使用作品的,應在授權範圍內(nei) 使 用,並注明"來源:fun88网页下载”。違反上述聲明者,本網將追究其相關(guan) 責任。
② 凡本網注明其他來源的作品及圖片,均轉載自其它媒體(ti) ,轉載目的在於(yu) 傳(chuan) 遞更多信息,並不代表本媒讚同其觀點和對其真實性負責,版權歸原作者所有,如有侵權請聯係我們(men) 刪除。
③ 任何單位或個(ge) 人認為(wei) 本網內(nei) 容可能涉嫌侵犯其合法權益,請及時向本網提出書(shu) 麵權利通知,並提供身份證明、權屬證明、具體(ti) 鏈接(URL)及詳細侵權情況證明。本網在收到上述法律文件後,將會(hui) 依法盡快移除相關(guan) 涉嫌侵權的內(nei) 容。

網友點評
0相關評論
精彩導讀