單片機(jī)系統(tǒng)多串行口設(shè)計(jì)技術(shù)
發(fā)布時(shí)間:2008/9/2 0:00:00 訪問(wèn)次數(shù):583
。薄 ∫
在以單片機(jī)為核心的測(cè)控系統(tǒng)中.微控制器往往需要兩個(gè)或兩個(gè)以上的串行口與其他主機(jī)或外設(shè)進(jìn)行通訊,如何使系統(tǒng)具備多個(gè)串行接口,是一個(gè)具有普遍性的問(wèn)題。尤其在航空航天領(lǐng)域,由于gps、大氣數(shù)據(jù)系統(tǒng)、數(shù)字羅盤、無(wú)線電高度表、甚至陀螺等航空電子設(shè)備普遍采用串行通訊方式,單片計(jì)算機(jī)系統(tǒng)就更需要有多個(gè)串行口以滿足與外界信息交換的需要。
2 常用的多串行口設(shè)計(jì)方法
、龠x用多串行口單片機(jī)
直接選用多串行口單片機(jī)作為系統(tǒng)的cpu,顯然是最直接有效的方法,F(xiàn)在有許多新型cpu配備兩個(gè)或兩個(gè)以上串行口,如w77e58、ds80c320、msp430f149、c8051f020單片機(jī)和數(shù)字信號(hào)處理器tms320c30有兩個(gè)串行口,而cygnal的c8051f系列單片機(jī)有4-5個(gè)全雙工的異步串行口。
②用cpu的i/o模擬串行口
當(dāng)串行口的波特率設(shè)為9600波特時(shí),傳送一個(gè)bit需要100us左右,對(duì)于一般的單片機(jī)而言,軟件定時(shí)器完全有能力按異步串行通訊協(xié)議模擬出串行口的時(shí)序。所以,用cpu的兩個(gè)i/o口和一個(gè)軟件定時(shí)器,就可以純粹用軟件模擬出一個(gè)串行口來(lái)。文獻(xiàn)介紹了一種具體的實(shí)現(xiàn)方法,發(fā)送時(shí),只需按時(shí)序一位一位輸出數(shù)據(jù)即可,接收時(shí),首先利用外部中斷檢測(cè)到i/o接收口上的起始電平,然后利用定時(shí)器按半個(gè)bit的時(shí)間長(zhǎng)度延時(shí)接收第一個(gè)bit的數(shù)據(jù),再按一個(gè)bit的時(shí)間長(zhǎng)度延時(shí)依此讀取其他位的信號(hào)。
、刍诟咚佥斎胼敵龅能浖锌
80c196系列單片機(jī)配備了高速輸入hsi和高速輸出hso接口.可以利用hsi和hso來(lái)模擬串行口。數(shù)據(jù)的輸出利用hso,只要在hso的定時(shí)器里寫入與波特率對(duì)應(yīng)的延遲時(shí)間,hso每中斷一次,輸出一個(gè)數(shù)據(jù)位,直到停止位輸出完畢。接收時(shí),利用hsi自身的信號(hào)跳變檢測(cè)功能檢測(cè)起始位,并產(chǎn)生中斷通知cpu開始接收數(shù)據(jù),后續(xù)的數(shù)據(jù)位由軟件定時(shí)器按波特率定時(shí)讀取。文獻(xiàn)詳細(xì)介紹了實(shí)現(xiàn)方法,并給出了完整的程序代碼;本方法在80c196mc/md單片機(jī)中。則表現(xiàn)為事件處理陣列epa和外設(shè)事物服務(wù)器pts的應(yīng)用,其優(yōu)點(diǎn)是epa的每個(gè)模塊與cpu的指定引腳對(duì)應(yīng),減少了軟件開銷和程序設(shè)計(jì)的復(fù)雜度。
、埽保叮悖担担跋盗锌删幊掏ㄓ嵖刂破
利用并行口擴(kuò)展串行口的接口芯片種類較多,其中16c550系列通訊控制器普遍應(yīng)用于計(jì)算機(jī)控制系統(tǒng)和通訊設(shè)備,以實(shí)現(xiàn)cpu與串行口和modem的通訊。16c550配備一個(gè)串行口,16c552配備兩個(gè)串行口,而16c554配備四個(gè)串行口。16c550系列器件的實(shí)質(zhì)是實(shí)現(xiàn)串行口與cpu并行口的轉(zhuǎn)換,其自身有較強(qiáng)的數(shù)字邏輯功能。16c550系列器件的串行口工作方式均可編程,有的還帶有開關(guān)量輸入輸出接口,可以作為cpu的開關(guān)量擴(kuò)展接口用。
、萦梅至⑵骷䦟⒉⑿锌谵D(zhuǎn)換為串行口
文獻(xiàn)提供了一種利用555定時(shí)器、d觸發(fā)器和移位寄存器等分立元件實(shí)現(xiàn)串、并口互相轉(zhuǎn)換的電路。該電路用定時(shí)器產(chǎn)生與波特率一直的同步時(shí)鐘信號(hào),把接收到的數(shù)據(jù)移位寄存到并口供cpu讀取,或把并行口的數(shù)據(jù)移位發(fā)出,其實(shí)質(zhì)是用若干個(gè)分立元件模擬16c550的功能。
⑥串行口擴(kuò)展芯片
現(xiàn)在有一種專門的sp系列串行口擴(kuò)展芯片,可以將一路高速的全雙工串行口擴(kuò)展為多路的低速全雙工串行口,串口的波特率通過(guò)晶振統(tǒng)一確定。如sp2328和sp2338可以將一路母串口擴(kuò)展為三路子串口,sp2538可以將一路母串口擴(kuò)展為五路子串口。該系列芯片有輸入地址線和輸出地址線,在通過(guò)母串口向子串口發(fā)送數(shù)據(jù)時(shí)要給輸出地址線上加選擇電平,確定從哪一路子串口輸出,在通過(guò)母串口從子串口讀取數(shù)據(jù)時(shí)要檢測(cè)輸入地址線的電平,以確定是哪一路子串口的信號(hào)。該系列芯片應(yīng)該是采用分時(shí)機(jī)制,通過(guò)內(nèi)部的邏輯電路將一路數(shù)據(jù)分解為多路或?qū)⒍嗦窋?shù)據(jù)合成為一路。如sp2328母串口的波特率是子串口波特率的四倍,sp2538母串口的波特率是子串口波特率的六倍。
、哂枚嗦窂(fù)用器擴(kuò)展串行口
文獻(xiàn)提供了一種利用多路復(fù)用器max353將一路串行口擴(kuò)展為兩路的方法。在發(fā)送信號(hào)的時(shí)候,cpu先給出max353的端口選擇地址,串行信號(hào)經(jīng)多路復(fù)用器的切換,從指定通道發(fā)送出去。在接受信號(hào)的時(shí)候,將多路復(fù)用器默認(rèn)為第一通道,第二路串行口的rxd2同時(shí)接到(2pu的外部中斷引腳上。如果第一通道有數(shù)據(jù),則直接接收。如果第二通道有數(shù)據(jù).rxd2的起始位將產(chǎn)生一個(gè)外部中斷,cpu進(jìn)入中斷響應(yīng)程序,將復(fù)用器切換到第二通道,接受rxd2的數(shù)據(jù)。一個(gè)字節(jié)接收完畢后,將復(fù)用器切換回第一通道。
文獻(xiàn)的方法占用了一個(gè)外部中斷,且只能將一路串口擴(kuò)展為兩路;谕瑯拥乃悸,可以
。薄 ∫
在以單片機(jī)為核心的測(cè)控系統(tǒng)中.微控制器往往需要兩個(gè)或兩個(gè)以上的串行口與其他主機(jī)或外設(shè)進(jìn)行通訊,如何使系統(tǒng)具備多個(gè)串行接口,是一個(gè)具有普遍性的問(wèn)題。尤其在航空航天領(lǐng)域,由于gps、大氣數(shù)據(jù)系統(tǒng)、數(shù)字羅盤、無(wú)線電高度表、甚至陀螺等航空電子設(shè)備普遍采用串行通訊方式,單片計(jì)算機(jī)系統(tǒng)就更需要有多個(gè)串行口以滿足與外界信息交換的需要。
。病〕S玫亩啻锌谠O(shè)計(jì)方法
、龠x用多串行口單片機(jī)
直接選用多串行口單片機(jī)作為系統(tǒng)的cpu,顯然是最直接有效的方法,F(xiàn)在有許多新型cpu配備兩個(gè)或兩個(gè)以上串行口,如w77e58、ds80c320、msp430f149、c8051f020單片機(jī)和數(shù)字信號(hào)處理器tms320c30有兩個(gè)串行口,而cygnal的c8051f系列單片機(jī)有4-5個(gè)全雙工的異步串行口。
、谟茫悖穑醯模椋锬M串行口
當(dāng)串行口的波特率設(shè)為9600波特時(shí),傳送一個(gè)bit需要100us左右,對(duì)于一般的單片機(jī)而言,軟件定時(shí)器完全有能力按異步串行通訊協(xié)議模擬出串行口的時(shí)序。所以,用cpu的兩個(gè)i/o口和一個(gè)軟件定時(shí)器,就可以純粹用軟件模擬出一個(gè)串行口來(lái)。文獻(xiàn)介紹了一種具體的實(shí)現(xiàn)方法,發(fā)送時(shí),只需按時(shí)序一位一位輸出數(shù)據(jù)即可,接收時(shí),首先利用外部中斷檢測(cè)到i/o接收口上的起始電平,然后利用定時(shí)器按半個(gè)bit的時(shí)間長(zhǎng)度延時(shí)接收第一個(gè)bit的數(shù)據(jù),再按一個(gè)bit的時(shí)間長(zhǎng)度延時(shí)依此讀取其他位的信號(hào)。
、刍诟咚佥斎胼敵龅能浖锌
。福埃悖保梗断盗袉纹瑱C(jī)配備了高速輸入hsi和高速輸出hso接口.可以利用hsi和hso來(lái)模擬串行口。數(shù)據(jù)的輸出利用hso,只要在hso的定時(shí)器里寫入與波特率對(duì)應(yīng)的延遲時(shí)間,hso每中斷一次,輸出一個(gè)數(shù)據(jù)位,直到停止位輸出完畢。接收時(shí),利用hsi自身的信號(hào)跳變檢測(cè)功能檢測(cè)起始位,并產(chǎn)生中斷通知cpu開始接收數(shù)據(jù),后續(xù)的數(shù)據(jù)位由軟件定時(shí)器按波特率定時(shí)讀取。文獻(xiàn)詳細(xì)介紹了實(shí)現(xiàn)方法,并給出了完整的程序代碼;本方法在80c196mc/md單片機(jī)中。則表現(xiàn)為事件處理陣列epa和外設(shè)事物服務(wù)器pts的應(yīng)用,其優(yōu)點(diǎn)是epa的每個(gè)模塊與cpu的指定引腳對(duì)應(yīng),減少了軟件開銷和程序設(shè)計(jì)的復(fù)雜度。
、埽保叮悖担担跋盗锌删幊掏ㄓ嵖刂破
利用并行口擴(kuò)展串行口的接口芯片種類較多,其中16c550系列通訊控制器普遍應(yīng)用于計(jì)算機(jī)控制系統(tǒng)和通訊設(shè)備,以實(shí)現(xiàn)cpu與串行口和modem的通訊。16c550配備一個(gè)串行口,16c552配備兩個(gè)串行口,而16c554配備四個(gè)串行口。16c550系列器件的實(shí)質(zhì)是實(shí)現(xiàn)串行口與cpu并行口的轉(zhuǎn)換,其自身有較強(qiáng)的數(shù)字邏輯功能。16c550系列器件的串行口工作方式均可編程,有的還帶有開關(guān)量輸入輸出接口,可以作為cpu的開關(guān)量擴(kuò)展接口用。
、萦梅至⑵骷䦟⒉⑿锌谵D(zhuǎn)換為串行口
文獻(xiàn)提供了一種利用555定時(shí)器、d觸發(fā)器和移位寄存器等分立元件實(shí)現(xiàn)串、并口互相轉(zhuǎn)換的電路。該電路用定時(shí)器產(chǎn)生與波特率一直的同步時(shí)鐘信號(hào),把接收到的數(shù)據(jù)移位寄存到并口供cpu讀取,或把并行口的數(shù)據(jù)移位發(fā)出,其實(shí)質(zhì)是用若干個(gè)分立元件模擬16c550的功能。
、薮锌跀U(kuò)展芯片
現(xiàn)在有一種專門的sp系列串行口擴(kuò)展芯片,可以將一路高速的全雙工串行口擴(kuò)展為多路的低速全雙工串行口,串口的波特率通過(guò)晶振統(tǒng)一確定。如sp2328和sp2338可以將一路母串口擴(kuò)展為三路子串口,sp2538可以將一路母串口擴(kuò)展為五路子串口。該系列芯片有輸入地址線和輸出地址線,在通過(guò)母串口向子串口發(fā)送數(shù)據(jù)時(shí)要給輸出地址線上加選擇電平,確定從哪一路子串口輸出,在通過(guò)母串口從子串口讀取數(shù)據(jù)時(shí)要檢測(cè)輸入地址線的電平,以確定是哪一路子串口的信號(hào)。該系列芯片應(yīng)該是采用分時(shí)機(jī)制,通過(guò)內(nèi)部的邏輯電路將一路數(shù)據(jù)分解為多路或?qū)⒍嗦窋?shù)據(jù)合成為一路。如sp2328母串口的波特率是子串口波特率的四倍,sp2538母串口的波特率是子串口波特率的六倍。
、哂枚嗦窂(fù)用器擴(kuò)展串行口
文獻(xiàn)提供了一種利用多路復(fù)用器max353將一路串行口擴(kuò)展為兩路的方法。在發(fā)送信號(hào)的時(shí)候,cpu先給出max353的端口選擇地址,串行信號(hào)經(jīng)多路復(fù)用器的切換,從指定通道發(fā)送出去。在接受信號(hào)的時(shí)候,將多路復(fù)用器默認(rèn)為第一通道,第二路串行口的rxd2同時(shí)接到(2pu的外部中斷引腳上。如果第一通道有數(shù)據(jù),則直接接收。如果第二通道有數(shù)據(jù).rxd2的起始位將產(chǎn)生一個(gè)外部中斷,cpu進(jìn)入中斷響應(yīng)程序,將復(fù)用器切換到第二通道,接受rxd2的數(shù)據(jù)。一個(gè)字節(jié)接收完畢后,將復(fù)用器切換回第一通道。
文獻(xiàn)的方法占用了一個(gè)外部中斷,且只能將一路串口擴(kuò)展為兩路;谕瑯拥乃悸罚梢
熱門點(diǎn)擊
- 單片機(jī)與RS232串口通信C51程序
- 單片機(jī)簡(jiǎn)介與單片機(jī)的發(fā)展歷史
- 基于控制專用單片機(jī)的無(wú)刷直流電機(jī)控制器
- 單片機(jī)通信協(xié)議處理
- 采用混合信號(hào)高電壓?jiǎn)纹瑱C(jī)實(shí)現(xiàn)LED降壓-升壓
- MCS-51單片機(jī)的指令時(shí)序
- MCS51系列單片機(jī)軟件復(fù)位的方法
- 小型單片機(jī)系統(tǒng)延時(shí)關(guān)機(jī)電路
- 單片機(jī)通用模擬串口C程序
- SPCE061A型單片機(jī)在土木工程測(cè)溫儀中的
推薦技術(shù)資料
- 硬盤式MP3播放器終級(jí)改
- 一次偶然的機(jī)會(huì)我結(jié)識(shí)了NE0 2511,那是一個(gè)遠(yuǎn)方的... [詳細(xì)]
- 100A全集成電源模塊R
- Teseo-VIC6A GNSS車用精準(zhǔn)定位
- 高效先進(jìn)封裝工藝
- 模數(shù)轉(zhuǎn)換器 (Analog-to-Digit
- 集成模數(shù)轉(zhuǎn)換器(ADC)
- 128 通道20 位電流數(shù)字轉(zhuǎn)換器̴
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究