優(yōu)勝從選擇開始,我們是您最好的選擇!—— 中州期刊聯(lián)盟(新鄉(xiāng)市博翰文化傳媒有限公司)
0373-5939925
2851259250@qq.com
我要檢測 我要投稿 合法期刊查詢
您的位置:網(wǎng)站首頁 > 優(yōu)秀論文 > 正文

基于單片機的多串口實現(xiàn)方案

作者:甘宇紅來源:原創(chuàng)日期:2013-12-30人氣:1626
一、總述
隨著控制技術(shù)的發(fā)展,控制系統(tǒng)的數(shù)字化在生產(chǎn)過程中的應用越來越普遍。作為控制核心的CPU需要和多個檢測及控制的相關(guān)設(shè)備進行通信。這就給控制系統(tǒng)帶來一個問題,一般的CPU都是只有1個串口(單片機最多的有4個),如果外界串行口設(shè)備過多,設(shè)計上就會出現(xiàn)許多困難。筆者因此論述了幾個多串口實現(xiàn)方案,并采用其中一種實現(xiàn)了5個全雙工串口,并且可以兼容多種串行通信電平標準(RS232/RS485/RS422)。
1、基于硬件方式實現(xiàn)的多串口擴展
SP3539是采用低功耗CMOS工藝設(shè)計的通用異步串行口擴展芯片,它可輕松將主機原有的1個串行口擴展成5個完全獨立且每個子串口波特率、奇偶效驗方式、數(shù)據(jù)幀長度都可獨立設(shè)置的全雙工子串口(子串口波特率最高可達115.2Kbps,滿足數(shù)據(jù)高速傳輸要求)。
SP3539采用分時復用技術(shù)將一個全雙工串口(上位機自帶串口)擴展成5個完全獨立的全雙工串口(子串口),在上電默認模式下母串口的波特率是各子串口波特率的6倍,即:各子串口可在特定的時間段內(nèi)獨占母串口,因此即使所有子串口都有連續(xù)不斷的數(shù)據(jù)輸入也不會發(fā)生數(shù)據(jù)丟失。母串口和各子串口內(nèi)部都分別有8字節(jié)的接收和發(fā)送FIFO緩存,即使5個子串口同時接收到數(shù)據(jù)和啟動數(shù)據(jù)發(fā)送也不會丟失數(shù)據(jù)。
2、基于SP3539串口擴展的硬件電路設(shè)計
本文采用了經(jīng)典的8051單片機(AT89S52)作為主控芯片。該芯片與SP3539相連時接口非常簡單。SP3539共有六個串口,即一個母串口,五個子串口,它們都是全雙工的串行通信口,允許同時接收和發(fā)送數(shù)據(jù)。母串口與單片機的串口相連,子串口與其他串口設(shè)備相連,這樣就實現(xiàn)了只有一個串口的單片機可與五個串口設(shè)備相連。SP2338有一套發(fā)送地址線,一套接收地址線,用以選擇發(fā)送串口和接收串口。當單片機要向串口設(shè)備發(fā)送數(shù)據(jù)時:
A單片機先發(fā)送地址信息(子串口地址)到SP3539的輸入地址“ADRI2”、“ADRI1”、“ADRI0”(如圖1),即選中待發(fā)送數(shù)據(jù)對應的子串口。
B將待發(fā)送的數(shù)據(jù)由單片機通過母串口發(fā)送到SP3539。SP3539的母串口收到單片機串口送來的數(shù)據(jù)后就根據(jù)ADRI0、ADRI1和ADRI2的狀態(tài),把數(shù)據(jù)送往對應的子串口。
C對應的子串口再把數(shù)據(jù)經(jīng)過電平轉(zhuǎn)換變成對應的電平標準發(fā)給對應的設(shè)備。
當串口設(shè)備向單片機發(fā)送數(shù)據(jù)時,其數(shù)據(jù)流程為:
ASP3539的將子串口收到的數(shù)據(jù)緩存到FIFO里面,并發(fā)送到母串口。
B單片機接收到數(shù)據(jù)后,必須盡快讀取ADRO2、ADRO1、ADRO0三位輸出地址的狀態(tài),并由此來判斷接收到的數(shù)據(jù)來自哪個子串口。
由于SP3539的母串口和各子串口內(nèi)部都分別有8字節(jié)的接收和發(fā)送FIFO緩存,因此擴展后的五個串口就可以完全獨立地同時通信。SP3539各子串口都支持10位及11位數(shù)據(jù)幀格式,允許上位機更改各子串口數(shù)據(jù)幀長度,初次上電后各子串口默認數(shù)據(jù)格式都為10位。
SP3539母串口波特率為:
K5=3600﹡Fosc_in
各子串口波特率為:
k=600﹡Fosc_in/n
式中“Fosc_in”為SP3539輸入時鐘(OSCI),單位為“MHz”,n為對應子串口設(shè)置的分頻系數(shù),默認狀態(tài)為“1”。本文采用的輸入時鐘為16.0MHz,則上電默認狀態(tài)下:母串口波特率:K5=3600﹡16.0=57600Bps,K0~4=600﹡1﹡16.0/1=9600Bps。
如果想要子串口的波特率工作在其它頻段,就必須根據(jù)上面的公式重新計算Fosc_in,同時也要改變SP3539和單片機的晶振。
3、基于SP3539串口擴展的程序設(shè)計
采用SP3539擴展串口程序簡單,占用資源少,不占用單片機的外部中斷和數(shù)據(jù)總線,5個子串口共享單片機串口中斷實現(xiàn)數(shù)據(jù)收發(fā)。但在使用過程中一定要注意:SP3539的地址總線一定要區(qū)分讀寫,否則會發(fā)生錯誤,造成芯片異常發(fā)熱;串口中斷里面對各個子串口操作的代碼一定要盡量優(yōu)化,否則在大數(shù)據(jù)量收發(fā)時會造成子串口數(shù)據(jù)丟失。

網(wǎng)絡(luò)客服QQ: 沈編輯

投訴建議:0373-5939925????投訴建議QQ:

招聘合作:2851259250@qq.com (如您是期刊主編、文章高手,可通過郵件合作)

地址:河南省新鄉(xiāng)市金穗大道東段266號中州期刊聯(lián)盟 ICP備案號:豫ICP備2020036848

【免責聲明】:中州期刊聯(lián)盟所提供的信息資源如有侵權(quán)、違規(guī),請及時告知。

版權(quán)所有:中州期刊聯(lián)盟(新鄉(xiāng)市博翰文化傳媒有限公司)

關(guān)注”中州期刊聯(lián)盟”公眾號
了解論文寫作全系列課程

核心期刊為何難發(fā)?

論文發(fā)表總嫌貴?

職院單位發(fā)核心?

掃描關(guān)注公眾號

論文發(fā)表不再有疑惑

論文寫作全系列課程

掃碼了解更多

輕松寫核心期刊論文

在線留言