嵌入式系統(tǒng)中擴(kuò)展串行口的幾種方法

時(shí)間:2009-11-12

來(lái)源:中國(guó)傳動(dòng)網(wǎng)

導(dǎo)語(yǔ):在這些嵌入式系統(tǒng)中,可能會(huì)有很多從設(shè)備都通過(guò)串行接口與主機(jī)進(jìn)行通信,如GPRS MODEM、紅外發(fā)送和接收模塊、RS485總線接口等。

引言   串行接口設(shè)備憑借其控制靈活、接口簡(jiǎn)單、占用系統(tǒng)資源少等優(yōu)點(diǎn),被廣泛應(yīng)用于工業(yè)控制、家庭安防、GPS衛(wèi)星定位導(dǎo)航以及水、電、氣表的抄表等領(lǐng)域。在這些嵌入式系統(tǒng)中,可能會(huì)有很多從設(shè)備都通過(guò)串行接口與主機(jī)進(jìn)行通信,如GPRS MODEM、紅外發(fā)送和接收模塊、RS485總線接口等。這使得開(kāi)發(fā)人員常常面臨嵌入式系統(tǒng)中主機(jī)串行通信接口不足的問(wèn)題,針對(duì)此問(wèn)題,本文介紹了幾種常見(jiàn)的解決方法。 軟件模擬法   軟件模擬法可根據(jù)串行通訊的傳送格式,利用定時(shí)器和主機(jī)的I/O口來(lái)模擬串行通訊的時(shí)序,以達(dá)到擴(kuò)展串口的目的。 接收過(guò)程中需要檢測(cè)起始位,這可以使用查詢方式,或者,在端口具有中斷功能的主機(jī)中也可以使用端口的中斷進(jìn)行處理。接收和發(fā)送過(guò)程中,對(duì)定時(shí)的處理既可以使用查詢方式也可以使用定時(shí)器中斷方式。為了確保數(shù)據(jù)的正確性,在接收過(guò)程中可以在檢測(cè)異步傳輸?shù)钠鹗夹盘?hào)處加上一些防干擾處理,在接收每個(gè)位時(shí)可以采用多次采樣。    利用并口轉(zhuǎn)串口擴(kuò)展串行口 基于Intel8251的串行口擴(kuò)展   Intel8251是一種通用的同步/異步發(fā)送器(USART),它的工作方式可以通過(guò)編程設(shè)置,并具有獨(dú)立的接收/發(fā)送器。能以同步或異步串行通信方式工作,自動(dòng)完成幀格式,具有奇、偶校驗(yàn)和錯(cuò)誤檢測(cè)電路。 基于TL16C554的串行口擴(kuò)展   TL16C554是TI公司生產(chǎn)的4通道異步收發(fā)器集成芯片。對(duì)TL16C554串行通道的控制,是通過(guò)對(duì)控制寄存器LCR、IER、DLL、DLM、MCR和FCR編程來(lái)實(shí)現(xiàn)的。這些控制字決定字符長(zhǎng)度、停止位的個(gè)數(shù)、奇偶校驗(yàn)、波特率以及調(diào)制解調(diào)器接口??刂萍拇嫫骺梢匀我忭樞?qū)懭耄荌ER必須最后一個(gè)寫入,因?yàn)樗刂浦袛嗍鼓?。串行通道?nèi)的波特率發(fā)生器(BRG)允許時(shí)鐘除以1至65535之間的任意數(shù),BRG根據(jù)其不同的三種通用頻率中的一種來(lái)決定標(biāo)準(zhǔn)波特率。 16C55x系列芯片還包括16C550、16C552,分別可以擴(kuò)展1個(gè)和2個(gè)串行口。 利用串行口擴(kuò)展串行口 基于GM8123/25系列芯片的串行口擴(kuò)展   GM8123/25系列串口擴(kuò)展芯片可以全硬件實(shí)現(xiàn)串口擴(kuò)展,通訊格式可設(shè)置,并與標(biāo)準(zhǔn)串口通訊格式兼容。   GM8125可擴(kuò)展5個(gè)標(biāo)準(zhǔn)串口,通過(guò)外部引腳選擇串口擴(kuò)展模式:?jiǎn)瓮ǖ拦ぷ髂J胶投嗤ǖ拦ぷ髂J健瓮ǖ滥J较?,無(wú)需設(shè)置芯片的通訊格式,子串口和母串口以相同的波特率工作,同一時(shí)刻只允許一組子串口和母串口通訊,工作子串口由地址線選擇。單通道工作模式適用于所有從機(jī)不需要同時(shí)通訊,并且通訊過(guò)程完全由主機(jī)控制的系統(tǒng)。多通道模式下,各子串口波特率相同,允許所有子串口同時(shí)與母串口通訊,母串口以子串口波特率的6倍工作。發(fā)送時(shí)由地址線選擇用來(lái)發(fā)送數(shù)據(jù)的子串口;接收時(shí)子串口能主動(dòng)響應(yīng)從機(jī)發(fā)送的數(shù)據(jù),再由母串口發(fā)送給主機(jī),同時(shí)由地址線返回接收到數(shù)據(jù)的子串口地址,主機(jī)在接收到子串口送來(lái)的數(shù)據(jù)后,可以根據(jù)地址線的狀態(tài)判斷數(shù)據(jù)是由哪一個(gè)從機(jī)發(fā)送的。   多通道工作模式下,在進(jìn)行數(shù)據(jù)通訊前要對(duì)芯片進(jìn)行工作方式設(shè)置,包括串口幀格式設(shè)置和通訊波特率設(shè)置。   通過(guò)串行口和控制引腳相互配合可對(duì)芯片進(jìn)行工作方式設(shè)置,引腳MS為0、且STADD2~STADD0為000時(shí)寫命令字,引腳MS為1、STADD2~STADD0為000時(shí)讀命令字。進(jìn)行工作方式設(shè)置時(shí),芯片的幀格式和母串口工作波特率與上一次進(jìn)行數(shù)據(jù)通訊時(shí)一致;而復(fù)位后的幀格式為11bit,母串口波特率為7200bps。 基于SP2338的串行口擴(kuò)展   SP2338是采用低功耗CMOS 工藝設(shè)計(jì)的通用異步串行口擴(kuò)展芯片,它可輕松將主機(jī)原有的1個(gè)串行口擴(kuò)展成3 個(gè)全新的全雙工串行口。   SP2338適用于1個(gè)起始位、8個(gè)數(shù)據(jù)位、1個(gè)停止位的多串口系統(tǒng),也就是說(shuō)其幀格式是不可編程的。主機(jī)通過(guò)改變ADRI1、ADRI0地址線狀態(tài)的方式選擇3個(gè)子串口中的任意一個(gè),3個(gè)子串口的地址分別為00、01、10。地址11用于執(zhí)行SP2338 芯片本身的復(fù)位指令0x35 或0xB5、睡眠指令0x55或0xD5、延時(shí)指令0x00。向RX0~RX3中的任意一個(gè)接收端口寫任意數(shù)據(jù)即可將SP2338喚醒,但由于SP2338的喚醒時(shí)間需要25ms左右,故用于芯片喚醒的數(shù)據(jù)將不會(huì)被主機(jī)接收。因此,可以先發(fā)送一個(gè)字節(jié)數(shù)據(jù)用于喚醒芯片,延時(shí)25ms后即可進(jìn)行正常的數(shù)據(jù)傳輸。   未使用的輸入端口,如RX0、RX1、RX2等必須連接到VCC;未使用的輸出端口,如TX0、TX1、TX2等必須懸空;未使用的ADRI0、ADRI1必須連接到GND。   主機(jī)收發(fā)數(shù)據(jù)時(shí)序?yàn)椋褐鳈C(jī)TX3接收到一個(gè)字節(jié)后應(yīng)立即讀取SP2338的輸出地址ADRO0、ADRO1的狀態(tài),判斷接收到的數(shù)據(jù)來(lái)自哪個(gè)子串口;主機(jī)發(fā)送數(shù)據(jù)時(shí),首先通過(guò)ADRI0、ADRI1選擇某一個(gè)子串口,再向TX3寫將發(fā)送的數(shù)據(jù)。 本文設(shè)計(jì)的擴(kuò)展方法   在電路設(shè)計(jì)的過(guò)程中,本文設(shè)計(jì)出一種適合自己系統(tǒng)需要、將1個(gè)串口擴(kuò)展為3個(gè)串口的方案,如圖1所示。   其中,4001是四2輸入端或非門,40106是六施密特觸發(fā)器。4001的4腳和9腳分別為主機(jī)的RXD和TXD,40106的2腳和9腳為子串口的TXD0和RXD0,6腳和11腳為子串口的TXD1和RXD1,4腳和13腳為子串口的TXD2和RXD2。   根據(jù)圖的連接方式和邏輯代數(shù)的推導(dǎo)可得:RXD的狀態(tài)等于40106的9腳、11腳、13腳的狀態(tài)相與。當(dāng)40106的9腳、11腳、13腳中的任意一個(gè)有數(shù)據(jù)信號(hào)時(shí),由于在異步串行通訊中,無(wú)數(shù)據(jù)傳輸時(shí)的引腳狀態(tài)為高,因此RXD上就能接收到有數(shù)據(jù)信號(hào)的那個(gè)引腳上的數(shù)據(jù)狀態(tài)。40106的2腳、4腳、6腳的狀態(tài)等于TXD的狀態(tài),所以可以利用40106的2腳、4腳、6腳做為子串口的TXD。   這種設(shè)計(jì)方案適用于主機(jī)同時(shí)向多個(gè)串行設(shè)備發(fā)送數(shù)據(jù),而從設(shè)備不同時(shí)向主機(jī)發(fā)送數(shù)據(jù)的情況。再增加幾個(gè)信號(hào)線,就可以區(qū)分出向哪一個(gè)從設(shè)備發(fā)送數(shù)據(jù)以及接收到的數(shù)據(jù)是來(lái)自哪一個(gè)從設(shè)備。在本文的系統(tǒng)中,主機(jī)是通信的發(fā)起者,接收到的數(shù)據(jù)來(lái)自哪個(gè)從設(shè)備是可以預(yù)知的,因此,只需再增加3個(gè)控制從設(shè)備使能的信號(hào)線即可。 幾種方法的比較   在需要擴(kuò)展系統(tǒng)的串行口時(shí),使用多串行口單片機(jī)的方法是最容易想到的。由于串口集成在單片機(jī)內(nèi)部,因此設(shè)備體積較小,抗干擾能力較高,但多串口單片機(jī)通常價(jià)格較高,而且,如果是開(kāi)發(fā)人員所不熟悉的型號(hào),還需要開(kāi)發(fā)人員重新學(xué)習(xí)并購(gòu)買與之配套的開(kāi)發(fā)工具,這延長(zhǎng)了產(chǎn)品的開(kāi)發(fā)周期,也增加了產(chǎn)品的開(kāi)發(fā)成本。   軟件模擬法占用的系統(tǒng)資源少、成本低、易于實(shí)現(xiàn)。但其采樣次數(shù)較低,難以保證數(shù)據(jù)的正確性,而且一般不能模擬過(guò)高的波特率。   并行口擴(kuò)展串口方法的功能比較強(qiáng)大,能提供MODEM控制信號(hào)、通訊速度高,但控制復(fù)雜,占用MCU的端口資源較多,同時(shí)價(jià)格也較高。   利用串行口擴(kuò)展串行口,控制簡(jiǎn)單,能最大限度地減少控制線,不需要占用太多的主機(jī)系統(tǒng)資源,而且通用性強(qiáng),性能穩(wěn)定,可保證數(shù)據(jù)的正確性。GM812x的不足之處在于:不滿足超低功耗應(yīng)用要求;多通道模式下,所有子串口工作波特率只能設(shè)置成統(tǒng)一值,不適用于各從機(jī)工作波特率不一致、又要求同時(shí)工作的系統(tǒng)。SP2338雖然能滿足低功耗的要求,但其子串口波特率也需要設(shè)置為統(tǒng)一值,并且不能對(duì)數(shù)據(jù)幀格式編程,最高波特率也只有9600bps。   本文提出的方法中,各個(gè)子串口的串行特性和母串口相同,使用簡(jiǎn)單,占用系統(tǒng)資源少,易于控制(最少2個(gè)控制信號(hào)擴(kuò)展3個(gè)串口),穩(wěn)定性好。其功耗取決于4001和40106,它們的功耗都在mA級(jí)。其最高波特率取決于4001和40106的響應(yīng)速度,4001和40106的最大響應(yīng)延遲是250ns,所以理論上最高波特率可達(dá)4Mbps。此方法已經(jīng)成功地應(yīng)用于三表遠(yuǎn)傳系統(tǒng)。該方法的缺點(diǎn)是,它不能用于從機(jī)工作波特率不一致、又要求同時(shí)工作的系統(tǒng)。 結(jié)束語(yǔ)   本文設(shè)計(jì)了一種擴(kuò)展串口的方法以解決在實(shí)際應(yīng)用中遇到的主機(jī)串行口資源不足的問(wèn)題,目前該方法已經(jīng)成功地應(yīng)用于三表遠(yuǎn)傳系統(tǒng)中。在解決這個(gè)問(wèn)題的過(guò)程中,本文也對(duì)其他解決方案進(jìn)行了比較。
中傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:

凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(m.u63ivq3.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

關(guān)注伺服與運(yùn)動(dòng)控制公眾號(hào)獲取更多資訊

關(guān)注直驅(qū)與傳動(dòng)公眾號(hào)獲取更多資訊

關(guān)注中國(guó)傳動(dòng)網(wǎng)公眾號(hào)獲取更多資訊

最新新聞
查看更多資訊

娓娓工業(yè)

廣州金升陽(yáng)科技有限公司

熱搜詞
  • 運(yùn)動(dòng)控制
  • 伺服系統(tǒng)
  • 機(jī)器視覺(jué)
  • 機(jī)械傳動(dòng)
  • 編碼器
  • 直驅(qū)系統(tǒng)
  • 工業(yè)電源
  • 電力電子
  • 工業(yè)互聯(lián)
  • 高壓變頻器
  • 中低壓變頻器
  • 傳感器
  • 人機(jī)界面
  • PLC
  • 電氣聯(lián)接
  • 工業(yè)機(jī)器人
  • 低壓電器
  • 機(jī)柜
回頂部
點(diǎn)贊 0
取消 0