串行接口設備憑借其控制靈活、接口簡單、占用系統資源少等優(yōu)點,被廣泛應用于工業(yè)控制、家庭安防、GPS衛(wèi)星定位導航以及水、電、氣表的抄表等領域。在這些嵌入式系統中,可能會有很多從設備都通過串行接口與主機進行通信,如GPRS MODEM、紅外發(fā)送和接收模塊、RS485總線接口等。這使得開發(fā)人員常常面臨嵌入式系統中主機串行通信接口不足的問題,針對此問題,本文介紹了幾種常見的解決方法。
軟件模擬法
軟件模擬法可根據串行通訊的傳送格式,利用定時器和主機的I/O口來模擬串行通訊的時序,以達到擴展串口的目的。
接收過程中需要檢測起始位,這可以使用查詢方式,或者,在端口具有中斷功能的主機中也可以使用端口的中斷進行處理。接收和發(fā)送過程中,對定時的處理既可以使用查詢方式也可以使用定時器中斷方式。為了確保數據的正確性,在接收過程中可以在檢測異步傳輸的起始信號處加上一些防干擾處理,在接收每個位時可以采用多次采樣。
利用并口轉串口擴展串行口
基于In8251的串行口擴展
In8251是一種通用的同步/異步發(fā)送器(USART),它的工作方式可以通過編程設置,并具有獨立的接收/發(fā)送器。能以同步或異步串行通信方式工作,自動完成幀格式,具有奇、偶校驗和錯誤檢測電路。
基于TL16C554的串行口擴展
TL16C554是TI公司生產的4通道異步收發(fā)器集成芯片。對TL16C554串行通道的控制,是通過對控制寄存器LCR、IER、DLL、DLM、 MCR和FCR編程來實現的。這些控制字決定字符長度、停止位的個數、奇偶校驗、波特率以及調制解調器接口。控制寄存器可以任意順序寫入,但是IER必須zui后一個寫入,因為它控制中斷使能。串行通道內的波特率發(fā)生器(BRG)允許時鐘除以1至65535之間的任意數,BRG根據其不同的三種通用頻率中的一種來決定標準波特率。16C55x系列芯片還包括16C550、16C552,分別可以擴展1個和2個串行口。
利用串行口擴展串行口
基于GM8123/25系列芯片的串行口擴展。GM8123/25系列串口擴展芯片可以全硬件實現串口擴展,通訊格式可設置,并與標準串口通訊格式兼容。GM8125可擴展5個標準串口,通過外部引腳選擇串口擴展模式:單通道工作模式和多通道工作模式。單通道模式下,無需設置芯片的通訊格式,子串口和母串口以相同的波特率工作,同一時刻只允許一組子串口和母串口通訊,工作子串口由地址線選擇。單通道工作模式適用于所有從機不需要同時通訊,并且通訊過程*由主機控制的系統。多通道模式下,各子串口波特率相同,允許所有子串口同時與母串口通訊,母串口以子串口波特率的6倍工作。發(fā)送時由地址線選擇用來發(fā)送數據的子串口;接收時子串口能主動響應從機發(fā)送的數據,再由母串口發(fā)送給主機,同時由地址線返回接收到數據的子串口地址,主機在接收到子串口送來的數據后,可以根據地址線的狀態(tài)判斷數據是由哪一個從機發(fā)送的。多通道工作模式下,在進行數據通訊前要對芯片進行工作方式設置,包括串口幀格式設置和通訊波特率設置。
通過串行口和控制引腳相互配合可對芯片進行工作方式設置,引腳MS為0、且STADD2~STADD0為000時寫命令字,引腳MS為1、 STADD2~STADD0為000時讀命令字。進行工作方式設置時,芯片的幀格式和母串口工作波特率與上一次進行數據通訊時一致;而復位后的幀格式為 11bit,母串口波特率為7200bps。
基于SP2338的串行口擴展
SP2338是采用低功耗CMOS 工藝設計的通用異步串行口擴展芯片,它可輕松將主機原有的1個串行口擴展成3 個全新的全雙工串行口。SP2338適用于1個起始位、8個數據位、1個停止位的多串口系統,也就是說其幀格式是不可編程的。主機通過改變ADRI1、ADRI0地址線狀態(tài)的方式選擇3個子串口中的任意一個,3個子串口的地址分別為00、01、10。地址11用于執(zhí)行SP2338 芯片本身的復位指令0x35 或0xB5、睡眠指令0x55或0xD5、延時指令0x00。向RX0~RX3中的任意一個接收端口寫任意數據即可將SP2338喚醒,但由于 SP2338的喚醒時間需要25ms左右,故用于芯片喚醒的數據將不會被主機接收。因此,可以先發(fā)送一個字節(jié)數據用于喚醒芯片,延時25ms后即可進行正常的數據傳輸。未使用的輸入端口,如RX0、RX1、RX2等必須連接到VCC;未使用的輸出端口,如TX0、TX1、TX2等必須懸空;未使用的ADRI0、ADRI1必須連接到GND。主機收發(fā)數據時序為:主機TX3接收到一個字節(jié)后應立即讀取SP2338的輸出地址ADRO0、ADRO1的狀態(tài),判斷接收到的數據來自哪個子串口;主機發(fā)送數據時,首先通過ADRI0、ADRI1選擇某一個子串口,再向TX3寫將發(fā)送的數據。
幾種方法的比較
在需要擴展系統的串行口時,使用多串行口單片機的方法是zui容易想到的。由于串口集成在單片機內部,因此設備體積較小,抗干擾能力較高,但多串口單片機通常價格較高,而且,如果是開發(fā)人員所不熟悉的型號,還需要開發(fā)人員重新學習并購買與之配套的開發(fā)工具,這延長了產品的開發(fā)周期,也增加了產品的開發(fā)成本。
軟件模擬法占用的系統資源少、成本低、易于實現。但其采樣次數較低,難以保證數據的正確性,而且一般不能模擬過高的波特率。
并行口擴展串口方法的功能比較強大,能提供MODEM控制信號、通訊速度高,但控制復雜,占用MCU的端口資源較多,同時價格也較高。
利用串行口擴展串行口,控制簡單,能zui大限度地減少控制線,不需要占用太多的主機系統資源,而且通用性強,性能穩(wěn)定,可保證數據的正確性。GM812x 的不足之處在于:不滿足超低功耗應用要求;多通道模式下,所有子串口工作波特率只能設置成統一值,不適用于各從機工作波特率不一致、又要求同時工作的系統。SP2338雖然能滿足低功耗的要求,但其子串口波特率也需要設置為統一值,并且不能對數據幀格式編程,zui高波特率也只有9600bps。
本文提出的方法中,各個子串口的串行特性和母串口相同,使用簡單,占用系統資源少,易于控制(zui少2個控制信號擴展3個串口),穩(wěn)定性好。其功耗取決于 4001和40106,它們的功耗都在m*。其zui高波特率取決于4001和40106的響應速度,4001和40106的zui大響應延遲是250ns,所以理論上zui高波特率可達4Mbps。此方法已經成功地應用于三表遠傳系統。該方法的缺點是,它不能用于從機工作波特率不一致、又要求同時工作的系統。
<<RS-422與RS-485的接地問題
<<RS232接口轉USB接口的通信方法
免責聲明
- 凡本網注明"來源:智能制造網"的所有作品,版權均屬于智能制造網,轉載請必須注明智能制造網,http://www.tzhjjxc.com。違反者本網將追究相關法律責任。
- 企業(yè)發(fā)布的公司新聞、技術文章、資料下載等內容,如涉及侵權、違規(guī)遭投訴的,一律由發(fā)布企業(yè)自行承擔責任,本網有權刪除內容并追溯責任。
- 本網轉載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品來源,并自負版權等法律責任。
- 如涉及作品內容、版權等問題,請在作品發(fā)表之日起一周內與本網聯系,否則視為放棄相關權利。
SAMPE中國第二十屆國際先進復合材料展覽會
展會城市:北京市展會時間:2025-06-18