基于多單片機(jī)的串口擴(kuò)展設(shè)計(jì)論文

          時(shí)間:2021-04-20 17:44:00 論文 我要投稿

          基于多單片機(jī)的串口擴(kuò)展設(shè)計(jì)論文

            1 前言

          基于多單片機(jī)的串口擴(kuò)展設(shè)計(jì)論文

            筆者在用單片機(jī)開(kāi)發(fā)一款稱(chēng)重儀表時(shí),功能較多,對(duì)串口的需求很高。需要的串口數(shù)量多,至少要五個(gè)串口,包括稱(chēng)重傳感器通信串口,電腦上位機(jī)通信串口,GIM900A 通信串口,大屏幕數(shù)碼管顯示的通信串口,打印模塊的通信串口等。而且對(duì)串口要求穩(wěn)定性高,大部分串口都要求實(shí)時(shí)雙工通信。根據(jù)實(shí)際情況和產(chǎn)品串口需求,采用不用的方法進(jìn)行串口擴(kuò)展,主要用到了模擬串口和多單片機(jī)實(shí)現(xiàn)串口擴(kuò)展。

            2 串口擴(kuò)展的一般方法

            (1)模擬串口。模擬串口利用其他單片機(jī)引腳模擬串口收發(fā)時(shí)序進(jìn)行串口擴(kuò)展。這種串口擴(kuò)展,缺點(diǎn)比較明顯,通信速率慢,可靠性不高,占用CPU 資源較多。高速雙工通信時(shí)一般不用此方案進(jìn)行串口擴(kuò)展,低速情況下可以考慮。筆者的項(xiàng)目中大屏幕數(shù)碼管顯示就用了這種方案,顯示的時(shí)候只發(fā)不收,單向通信,波特率要求低,最高不過(guò)9600bps。

            (2)利用專(zhuān)門(mén)的串口擴(kuò)展芯片處理。串口擴(kuò)展芯片進(jìn)行串口擴(kuò)展,通信穩(wěn)定性高,能達(dá)到一般的串口要求。市場(chǎng)上的串口擴(kuò)展芯片,性能不同,價(jià)格也不一樣,但普遍成本較高,少則二三十元,多則七八十元,不利于產(chǎn)品的成本控制。串口需求較多時(shí),一塊串口擴(kuò)展芯片上串口數(shù)量不足,還需要多塊串口擴(kuò)展芯片級(jí)聯(lián),更增加了成本。

            (3)利用多串口單片機(jī)。目前市場(chǎng)上有多串口的單片機(jī),很多低成本單片機(jī)都自帶兩個(gè)串口,比如stc12 多串口系列。用三串口及其以上的單片機(jī)成本更貴。

            (4)基于多單片機(jī)的串口擴(kuò)展設(shè)計(jì)。在一定成本要求下,結(jié)合目前單片機(jī)產(chǎn)品自身的優(yōu)勢(shì),利用多單片機(jī)進(jìn)行串口擴(kuò)展,也是一種串口擴(kuò)展的方案。一般c51 系列單片機(jī)自帶雙串口的只要幾元錢(qián),完全可以把單片機(jī)用來(lái)做串口擴(kuò)展,而且有的單片機(jī)自帶spi 通信接口,可以很方便的實(shí)現(xiàn)主從單片機(jī)之間的級(jí)聯(lián)和通信,同時(shí)雙單片機(jī)工作時(shí),可以利用從單片機(jī)處理一定的程序,減輕主單片機(jī)的負(fù)擔(dān),達(dá)到“雙核”效果。

            3 基于多單片機(jī)的串口擴(kuò)展設(shè)計(jì)

            3.1 串口擴(kuò)展系統(tǒng)框圖

            整個(gè)系統(tǒng)由兩塊單片機(jī)構(gòu)成主從結(jié)構(gòu),主機(jī)完成產(chǎn)品的大部分功能,從機(jī)只是進(jìn)行了串口擴(kuò)展,擴(kuò)展出了兩個(gè)雙工硬件串口,如果有需要,也可以分擔(dān)部分主機(jī)的其他功能。兩者之間通過(guò)SPI 硬件接口通信,該硬件SPI 總線是一種全雙工、高速、同步的通信總線,支持主模式和從模式兩種操作模式,主模式中支持高達(dá)3Mbps 的速率,完全可以完成主機(jī)和從機(jī)之間的可靠通信。主機(jī)和從機(jī)的串口通信,和一塊單片機(jī)使用時(shí)的用法一樣,只是先要經(jīng)過(guò)SPI 傳輸。當(dāng)需要向從機(jī)串口發(fā)數(shù)據(jù)時(shí),先要通過(guò)主機(jī)的SPI 通信送給從機(jī),再通過(guò)從機(jī)串口發(fā)給外圍模塊;當(dāng)需要接收從機(jī)串口數(shù)據(jù)時(shí),先從機(jī)接收到串口數(shù)據(jù),從機(jī)再利用SPI 傳輸給主機(jī)。在進(jìn)行軟件開(kāi)發(fā)時(shí),只要定義好主機(jī)和從機(jī)的SPI 通信協(xié)議,即可完成可靠的串口數(shù)據(jù)收發(fā)。

            3.2 主機(jī)和從機(jī)之間的SPI 通信

            主機(jī)和從機(jī)串口之間需要SPI 通信做橋梁,因此主從機(jī)之間的`SPI 通信顯得極其重要,必須要求高速、可靠、實(shí)時(shí),一次SPI 采用中斷完成。主機(jī)部分需要用到常用的四個(gè)函數(shù),即主機(jī)SPI 初始化,SPI 主從機(jī)之間的數(shù)據(jù)交換,向從機(jī)發(fā)送數(shù)據(jù),主機(jī)SPI 中斷接收等。

            1) 主機(jī)SPI 初始化:

            SPDAT=0;

            SPCTL=0xfd;

            SPSTAT=0xc0;

            IE2=IE2 | 0x2;

            2) 主機(jī)SPI 數(shù)據(jù)交換

            SPDAT = dat;

            while (!(SPSTAT & SPI_SPIF));

            SPSTAT = 0xc0;

            return SPDAT;

            3) 向從機(jī)發(fā)送字符串?dāng)?shù)據(jù)

            SPCTL = 0xfd;

            IE2=IE2 & 0x01;

            SPISS=0;

            4)SPI 接收中斷函數(shù)

            uchar ucRecvSpi;

            SPDAT=SPDAT;

            SPSTAT = 0xc0;

            ucRecvSpi=SPDAT;

            ??//SPI 接收到的數(shù)據(jù)處理

            ?循環(huán)SPI 數(shù)據(jù)交換

            發(fā)送字符串

            SPISS=1;

            SPCTL = 0xec;

            IE2=IE2 | 0x3;

            從機(jī)部分也需要用到主機(jī)一樣的四個(gè)函數(shù),即從機(jī)SPI 初始化,SPI 主從機(jī)之間的數(shù)據(jù)交換,向主機(jī)發(fā)送數(shù)據(jù),從機(jī)SPI中斷接收等。程序函數(shù)與主機(jī)大部分相同,只有細(xì)微區(qū)別。在從機(jī)SPI 初始化時(shí),SPCTL 控制寄存器初值為0xec。

            3.3 擴(kuò)展的串口處理

            從機(jī)自帶的兩個(gè)雙工串口即是擴(kuò)展出來(lái)的串口,要實(shí)現(xiàn)收發(fā)數(shù)據(jù),需要用到基本的3 個(gè)函數(shù),即從機(jī)串口初始化,從機(jī)串口向外圍模塊發(fā)送數(shù)據(jù),從機(jī)中斷接收數(shù)據(jù)。串口4 和串口5 函數(shù)類(lèi)似,下面只列舉串口4 的初始化函數(shù)部分。

            1) 串口1 初始化

            TMOD = 0x20;

            SCON = 0x5a;

            TH1 =TL1= -3;

            TR1 = 1;

            ES = 1; EA = 1;

            2) 串口接收中斷

            RI = 0 ;

            Buf[i]=SBUF;// 接收串口數(shù)據(jù)存入數(shù)組

            if (SBUF==0x0a && Buf[i-2]==0x0d)

            接收到結(jié)束符,則向主機(jī)發(fā)送串口數(shù)據(jù)。

            4 結(jié)語(yǔ)

            本文中的串口擴(kuò)展方法,實(shí)用性強(qiáng),成本較低,能較好的實(shí)現(xiàn)串口擴(kuò)展,同時(shí)利用多出的單片機(jī),可以為主CPU 分擔(dān)一定的任務(wù),提供一定的硬件資源。

          【基于多單片機(jī)的串口擴(kuò)展設(shè)計(jì)論文】相關(guān)文章:

          基于單片機(jī)的倒車(chē)?yán)走_(dá)設(shè)計(jì)論文開(kāi)題報(bào)告12-03

          基于單片機(jī)溫控智能風(fēng)扇的設(shè)計(jì)研究論文11-02

          一種基于單片機(jī)的可控成像系統(tǒng)設(shè)計(jì)論文11-08

          基于單片機(jī)的液位模糊控制器設(shè)計(jì)論文11-16

          基于可擴(kuò)展的網(wǎng)頁(yè)關(guān)鍵信息抽取研究論文10-30

          基于51單片機(jī)的盲文助讀器系統(tǒng)設(shè)計(jì)研究論文11-01

          基于多流的重傳策略論文06-21

          簡(jiǎn)析基于單片機(jī)的多用途定時(shí)器的設(shè)計(jì)論文11-16

          基于單片機(jī)的多用途定時(shí)器的設(shè)計(jì)分析論文11-14

          国产精品好爽好紧好大_亚洲男人综合久久综合_欧美福利电影a在线播放www_国产精品99久久精品无码

                  日韩精品乱码AV一区二区蜜桃 | 亚洲国产另类久久久精品网站 | 综合久久久综合欧美98 | 午夜福利国产精品久久 | 亚洲天堂男人2020 | 在线观看亚洲欧美一区二区三区 |