摘自:
行介面裝置憑藉其控制靈活、介面簡單、占用系統資源少等優點,被廣泛應用於工業控制、家庭安防、gps衛星定位導航以及水、電、氣表的抄表等領域。 在這些嵌入式系統中,可能會有很多從裝置都通過序列介面與主機進行通訊,如gprs modem、紅外傳送和接收模組、rs485匯流排介面等。這使得開發 人員常常面臨嵌入式系統中主機序列通訊介面不足的問題,針對此問題,本文介紹了幾種常見的解決方法。
軟體模擬法
軟體模 擬法可根據序列通訊的傳送格式,利用定時器和主機的i/o口來模擬序列通訊的時序,以達到擴充套件串列埠的目的。接收過程中需要檢測起始位,這可以使用查詢方 式,或者,在埠具有中斷功能的主機中也可以使用埠的中斷進行處理。接收和傳送過程中,對定時的處理既可以使用查詢方式也可以使用定時器中斷方式。為了 確保資料的正確性,在接收過程中可以在檢測非同步傳輸的起始訊號處加上一些防干擾處理,如果是無線傳輸系統,在接收每個位時可以採用多次取樣。對於有線系統 來說,1次取樣就夠了,你看iic,spi等,誰去進行了多次取樣。
如今軟體模擬以其**低廉,使用方便,已經成為一種潮流.但是不是所有的微控制器都適合用來進行串列埠的軟體模擬的.軟體模擬的方法一般有兩種,一種是讀寫 i/o,另外一種是讀寫埠.很容易想到採用讀寫埠的方式模擬的方式,各串列埠的波特率必須保持一致.而且當各路資料的輸入時間差只有那麼幾十微秒時,很 容易造成資料丟失,雖然看上去這種方式也可以承受輸入資料端短路的高資料量壓力測試,但這種測試方法是剛好落在了該方案的最佳輸入點上.所以真正的使用中 是有機率出錯的.而採用我們pdk80cxx系列在進行8路以下(4路全雙工通訊)的串列埠模擬時,完全可以採用讀寫i/o口方式來完成,這樣,我們可以非
常輕鬆完成個子口的波特率不等的設定.而且可以達到非常高的速率,當外接8mhz的晶體時,3路子口的最高速度可以達到38400以上.我想就是 38400的波特率一般的微控制器也就足夠了.俗話說,"打鐵還需墩子硬",而我們pdk80cxx都是工業規格設計,超強的抗干擾性,超寬的高低溫工作範 圍.不知道各位看官目前有沒有用過可以在-40~+120攝氏度工作的微控制器.所以採用pdk80cxx模擬串列埠擴充套件無疑是目前價效比最高的一種解決方 案.
利用並口轉串列埠擴充套件序列口
基於intel8251的序列口擴充套件
intel8251是一種通用的同步/非同步傳送器(usart),它的工作方式可以通過程式設計設定,並具有獨立的接收/傳送器。能以同步或非同步序列通訊方式工作,自動完成幀格式,具有奇、偶校驗和錯誤檢測電路。
基於tl16c554的序列口擴充套件
tl16c554是ti公司生產的4通道非同步收發器整合晶元。對tl16c554序列通道的控制,是通過對控制暫存器lcr、ier、dll、dlm、 mcr和fcr程式設計來實現的。這些控制字決定字元長度、停止位的個數、奇偶校驗、波特率以及數據機介面。控制暫存器可以任意順序寫入,但是ier必須 最後乙個寫入,因為它控制中斷使能。序列通道內的波特率發生器(brg)允許時鐘除以1至65535之間的任意數,brg根據其不同的三種通用頻率中的一 種來決定標準波特率。
16c55x系列晶元還包括16c550、16c552,分別可以擴充套件1個和2個序列口。
利用序列口擴充套件序列口
基於gm8123/25系列晶元的序列口擴充套件
gm8123/25系列串列埠擴充套件晶元可以全硬體實現串列埠擴充套件,通訊格式可設定,並與標準串列埠通訊格式相容。
gm8125可擴充套件5個標準串列埠,通過外部引腳選擇串列埠擴充套件模式:單通道工作模式和多通道工作模式。單通道模式下,無需設定晶元的通訊格式,子串口和母 串列埠以相同的波特率工作,同一時刻只允許一組子串口和母串列埠通訊,工作子串口由位址線選擇。單通道工作模式適用於所有從機不需要同時通訊,並且通訊過程完 全由主機控制的系統。多通道模式下,各子串口波特率相同,允許所有子串口同時與母串列埠通訊,母串列埠以子串口波特率的6倍工作。傳送時由位址線選擇用來傳送 資料的子串口;接收時子串口能主動響應從機傳送的資料,再由母串列埠傳送給主機,同時由位址線返回接收到資料的子串口位址,主機在接收到子串口送來的資料
後,可以根據位址線的狀態判斷資料是由哪乙個從機傳送的。
多通道工作模式下,在進行資料通訊前要對晶元進行工作方式設定,包括串列埠幀格式設定和通訊波特率設定。
通過序列口和控制引腳相互配合可對晶元進行工作方式設定,引腳ms為0、且stadd2~stadd0為000時寫命令字,引腳ms為1、 stadd2~stadd0為000時讀命令字。進行工作方式設定時,晶元的幀格式和母串列埠工作波特率與上一次進行資料通訊時一致;而復位後的幀格式為 11bit,母串列埠波特率為7200bps。
基於sp2338的序列口擴充套件
sp2338是採用低功耗cmos 工藝設計的通用非同步序列口擴充套件晶元,它可輕鬆將主機原有的1個序列口擴充套件成3 個全新的全雙工序列口。
sp2338適用於1個起始位、8個資料位、1個停止位的多串列埠系統,也就是說其幀格式是不可程式設計的。主機通過改變adri1、adri0位址線狀態的 方式選擇3個子串口中的任意乙個,3個子串列埠的位址分別為00、01、10。位址11用於執行sp2338 晶元本身的復位指令0x35 或0xb5、睡 眠指令0x55或0xd5、延時指令0x00。向rx0~rx3中的任意乙個接收埠寫任意資料即可將sp2338喚醒,但由於sp2338的喚醒時間需 要25ms左右,故用於晶元喚醒的資料將不會被主機接收。因此,可以先傳送乙個位元組資料用於喚醒晶元,延時25ms後即可進行正常的資料傳輸。
未使用的輸入埠,如rx0、rx1、rx2等必須連線到vcc;未使用的輸出埠,如tx0、tx1、tx2等必須懸空;未使用的adri0、adri1必須連線到gnd。
主機收發資料時序為:主機tx3接收到乙個位元組後應立即讀取sp2338的輸出位址adro0、adro1的狀態,判斷接收到的資料來自哪個子串口;主機傳送資料時,首先通過adri0、adri1選擇某乙個子串口,再向tx3寫將傳送的資料。
還有分時復用的擴充套件方法
在電路設計的過程中,本文設計出一種適合自己系統需要、將1個串列埠擴充套件為3個串列埠的方案,如圖1所示。
其中,4001是四2輸入端或非門,40106是六施密特觸發器。4001的4腳和9腳分別為主機的rxd和txd,40106的2腳和9腳為子串口的txd0和rxd0,6腳和11腳為子串口的txd1和rxd1,4腳和13腳為子串口的txd2和rxd2。
根據圖的連線方式和邏輯代數的推導可得:rxd的狀態等於40106的9腳、11腳、13腳的狀態相與。當40106的9腳、11腳、13腳中的任意一 個有資料訊號時,由於在非同步序列通訊中,無資料傳輸時的引腳狀態為高,因此rxd上就能接收到有資料訊號的那個引腳上的資料狀態。40106的2腳、4 腳、6腳的狀態等於txd的狀態,所以可以利用40106的2腳、4腳、6腳做為子串口的txd。
這種設計方案適用於主機同時向多個 序列裝置傳送資料,而從裝置不同時向主機傳送資料的情況。再增加幾個訊號線,就可以區分出向哪乙個從裝置傳送資料以及接收到的資料是來自哪乙個從裝置。在 本文的系統中,主機是通訊的發起者,接收到的資料來自哪個從裝置是可以預知的,因此,只需再增加3個控制從裝置使能的訊號線即可。
幾種方法的比較
在需要擴充套件系統的序列口時,使用多序列口微控制器的方法是最容易想到的。由於串列埠整合在微控制器內部,因此裝置體積較小,抗干擾能力較高,但多串列埠微控制器通 常**較高,而且,如果是開發人員所不熟悉的型號,還需要開發人員重新學習並購買與之配套的開發工具,這延長了產品的開發周期,也增加了產品的開發成本。
軟體模擬法占用的系統資源少、成本低、易於實現。已經被越來越多的人所採用。特別是基於pdk80cxx系列模擬的串列埠應用,以其適中的**,超強的抗干擾性和超寬的工作溫度,肯定會被更多的工業資料採集者所採用。
並行口擴充套件串列埠方法的功能比較強大,能提供modem控制訊號、通訊速度高,但控制複雜,占用mcu的埠資源較多,同時**也較高。
利用序列口擴充套件序列口,控制簡單,能最大限度地減少控制線,不需要占用太多的主機系統資源,而且通用性強,效能穩定,可保證資料的正確性。gm812x 的不足之處在於:不滿足超低功耗應用要求;多通道模式下,所有子串口工作波特率只能設定成統一值,不適用於各從機工作波特率不一致、又要求同時工作的系 統。sp2338雖然能滿足低功耗的要求,但其子串列埠波特率也需要設定為統一值,並且不能對資料幀格式程式設計,最高波特率也只有9600bps。
本文提出的方法中,各個子串口的序列特性和母串列埠相同,使用簡單,占用系統資源少,易於控制(最少2個控制訊號擴充套件3個串列埠),穩定性好。其功耗取決於 4001和40106,它們的功耗都在ma級。其最高波特率取決於4001和40106的響應速度,4001和40106的最大響應延遲是250ns,所 以理論上最高波特率可達4mbps。此方法已經成功地應用於三表遠傳系統。該方法的缺點是,它不能用於從機工作波特率不一致、又要求同時工作的系統
八串列埠擴充套件
今天老大讓我想實現在arm板上擴充套件八個串列埠的方法,用來連線外設。之前,提到監控系統,我想到影象傳輸需要較大頻寬的問題,串列埠能滿足傳輸率嗎?如果連線攝像頭的話,我想到,可以不可以擴充套件usb,利用usb來傳輸攝像頭拍攝的影象資訊。我猜測,如果需要特殊的要求,例如 8串列埠板,加hdmi,sa...
virtualbox擴充套件硬碟方案
virtualbox擴充套件硬碟方案 虛擬機器中目前使用最多的win8系統,當時建立時選擇了50g硬碟,現在已經不夠用了。昨天使用的虛擬機器檔案建立的mac系統也只有區區40g硬碟。虛擬機器擴充套件硬碟迫在眉睫。經過一上午的折騰,總算有了些收穫。大體上有新增磁碟和在原有磁碟擴充套件兩種方案。1 先說...
基於FPGA的 powerPC 串列埠擴充套件
本人與硬體合作完成ppc405ep 串列埠擴充套件,主要負責vxworks串列埠驅動的工作。工具 tornado 2.2 vxworks核心的編譯 ultraedit 編寫 bdi3000 bootrom的燒寫 步驟 1,建立開發環境,如下圖所示 2,搞清vxworks下串列埠驅動的架構,如下圖示 ...