基於多單片機的串口擴展設計論文
1 前言
筆者在用單片機開發一款稱重儀表時,功能較多,對串口的需求很高。需要的串口數量多,至少要五個串口,包括稱重傳感器通信串口,電腦上位機通信串口,GIM900A 通信串口,大屏幕數碼管顯示的通信串口,打印模組的通信串口等。而且對串口要求穩定性高,大部分串口都要求實時雙工通信。根據實際情況和產品串口需求,採用不用的方法進行串口擴展,主要用到了模擬串口和多單片機實現串口擴展。
2 串口擴展的一般方法
(1)模擬串口。模擬串口利用其他單片機引腳模擬串口收發時序進行串口擴展。這種串口擴展,缺點比較明顯,通信速率慢,可靠性不高,佔用CPU 資源較多。高速雙工通信時一般不用此方案進行串口擴展,低速情況下可以考慮。筆者的項目中大屏幕數碼管顯示就用了這種方案,顯示的時候只發不收,單向通信,波特率要求低,最高不過9600bps。
(2)利用專門的串口擴展芯片處理。串口擴展芯片進行串口擴展,通信穩定性高,能達到一般的串口要求。市場上的串口擴展芯片,性能不同,價格也不一樣,但普遍成本較高,少則二三十元,多則七八十元,不利於產品的成本控制。串口需求較多時,一塊串口擴展芯片上串口數量不足,還需要多塊串口擴展芯片級聯,更增加了成本。
(3)利用多串口單片機。目前市場上有多串口的單片機,很多低成本單片機都自帶兩個串口,比如stc12 多串口系列。用三串口及其以上的單片機成本更貴。
(4)基於多單片機的串口擴展設計。在一定成本要求下,結合目前單片機產品自身的優勢,利用多單片機進行串口擴展,也是一種串口擴展的方案。一般c51 系列單片機自帶雙串口的只要幾元錢,完全可以把單片機用來做串口擴展,而且有的單片機自帶spi 通信接口,可以很方便的實現主從單片機之間的級聯和通信,同時雙單片機工作時,可以利用從單片機處理一定的程序,減輕主單片機的.負擔,達到“雙核”效果。
3 基於多單片機的串口擴展設計
3.1 串口擴展系統框圖
整個系統由兩塊單片機構成主從結構,主機完成產品的大部分功能,從機只是進行了串口擴展,擴展出了兩個雙工硬件串口,如果有需要,也可以分擔部分主機的其他功能。兩者之間透過SPI 硬件接口通信,該硬件SPI 總線是一種全雙工、高速、同步的通信總線,支援主模式和從模式兩種操作模式,主模式中支援高達3Mbps 的速率,完全可以完成主機和從機之間的可靠通信。主機和從機的串口通信,和一塊單片機使用時的用法一樣,只是先要經過SPI 傳輸。當需要向從機串口發數據時,先要透過主機的SPI 通信送給從機,再透過從機串口發給外圍模組;當需要接收從機串口數據時,先從機接收到串口數據,從機再利用SPI 傳輸給主機。在進行軟件開發時,只要定義好主機和從機的SPI 通信協議,即可完成可靠的串口數據收發。
3.2 主機和從機之間的SPI 通信
主機和從機串口之間需要SPI 通信做橋樑,因此主從機之間的SPI 通信顯得極其重要,必須要求高速、可靠、實時,一次SPI 採用中斷完成。主機部分需要用到常用的四個函數,即主機SPI 初始化,SPI 主從機之間的數據交換,向從機發送數據,主機SPI 中斷接收等。
1) 主機SPI 初始化:
SPDAT=0;
SPCTL=0xfd;
SPSTAT=0xc0;
IE2=IE2 | 0x2;
2) 主機SPI 數據交換
SPDAT = dat;
while (!(SPSTAT & SPI_SPIF));
SPSTAT = 0xc0;
return SPDAT;
3) 向從機發送字元串數據
SPCTL = 0xfd;
IE2=IE2 & 0x01;
SPISS=0;
4)SPI 接收中斷函數
uchar ucRecvSpi;
SPDAT=SPDAT;
SPSTAT = 0xc0;
ucRecvSpi=SPDAT;
??//SPI 接收到的數據處理
?循環SPI 數據交換
發送字元串
SPISS=1;
SPCTL = 0xec;
IE2=IE2 | 0x3;
從機部分也需要用到主機一樣的四個函數,即從機SPI 初始化,SPI 主從機之間的數據交換,向主機發送數據,從機SPI中斷接收等。程序函數與主機大部分相同,只有細微區別。在從機SPI 初始化時,SPCTL 控制寄存器初值爲0xec。
3.3 擴展的串口處理
從機自帶的兩個雙工串口即是擴展出來的串口,要實現收發數據,需要用到基本的3 個函數,即從機串口初始化,從機串口向外圍模組發送數據,從機中斷接收數據。串口4 和串口5 函數類似,下面只列舉串口4 的初始化函數部分。
1) 串口1 初始化
TMOD = 0x20;
SCON = 0x5a;
TH1 =TL1= -3;
TR1 = 1;
ES = 1; EA = 1;
2) 串口接收中斷
RI = 0 ;
Buf[i]=SBUF;// 接收串口數據存入數組
if (SBUF==0x0a && Buf[i-2]==0x0d)
接收到結束符,則向主機發送串口數據。
4 結語
本文中的串口擴展方法,實用性強,成本較低,能較好的實現串口擴展,同時利用多出的單片機,可以爲主CPU 分擔一定的任務,提供一定的硬件資源。
-
國有制化工企業發展方向探討論文
摘要:在我國經濟建設的過程當中,國有企業在國民經濟當中佔據着較大的比重,這就突顯了在我國國有企業對於推動我國經濟發展的重要作用。但是在我國國有體制存在着一定的侷限性,因此使得國有經濟的發展面臨着一定的問題,突破國有企業的侷限性就必須進行國有體制改革。...
-
淺層排水處理的施工工藝研究論文
1前言當軟土地基在荷載作用下,土中孔隙水將慢慢排出,孔隙水壓力u減小,地基發生固結變形,但在總應力δ不變的情況下,有效應力δ′就提高,地基土的強度逐漸增長。同時,其與孔隙水壓力u有以下關係:δ′=δ-u。ピ詬枚蔚乇砩喜賈們巢閂潘系統就是爲了改變地基原有的排水邊界...
-
淺談以《鞏乃斯的馬》爲例談閱讀教學提問的有效性論文
隨着基礎教育課程改革推進,教師角色在以學生爲主體的教育理念下發生了重大的變化,對教師的素質和能力也提出了更高的要求,怎樣提高課堂教學的有效性,怎樣增強學生的主體性等成爲我們函需解決的問題。有效的課堂提問是實現教學高效的重要途徑。陶行知先生說:“發明千...
-
在高考語文備考中如何運用多元化教學法
常用來指進行各個學術領域的研究和描述學術研究成果的文章,簡稱之爲論文。下面是關於在高考語文備考中如何運用多元化教學法的內容,歡迎閱讀!【摘要】高考語文試題已成漸難趨勢,隨着“得語文者得高考”的呼聲漸高,在高考語文中要實現“三個一”,高考語文備考必須運用...