《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于GM814X的單片機(jī)串口擴(kuò)展及其應(yīng)用
基于GM814X的單片機(jī)串口擴(kuò)展及其應(yīng)用
來(lái)源:電子技術(shù)應(yīng)用2012年第9期
張 偉, 李文魁, 陳永冰
海軍工程大學(xué),湖北 武漢430033
摘要: 介紹了基于C8051F340單片機(jī)和GM814X串口擴(kuò)展芯片的串口擴(kuò)展方法。針對(duì)實(shí)際裝備的通信和接口需求,進(jìn)行了RS-485通信終端的電路軟硬件設(shè)計(jì)。實(shí)際應(yīng)用表明,該通信終端設(shè)計(jì)可靠,性?xún)r(jià)比高,解決了單片機(jī)在串行通信系統(tǒng)中的串口局限問(wèn)題。
中圖分類(lèi)號(hào): TP334
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2012)09-0096-04
Design and implementation of serial port extension based on GM814X
Zhang Wei, Li Wenkui, Chen Yongbing
Naval University of Engineering, Wuhan 430033, China
Abstract: his paper introduces a method of serial interface extension based on the C8051F340 MCU and the GM8141 chip, combines with the actual needs to design and implement, and gives the practical circuit of hardware and communication program section. The experimental application proved that the design is reliable, cost-effective and solves the limited serial port in the serial communication.
Key words : C8051F340; GM814X; serial port extension; serial communication

    在嵌入式系統(tǒng)中,串行接口設(shè)備憑借其控制靈活、接口簡(jiǎn)單、占用系統(tǒng)資源少等優(yōu)點(diǎn)而得到廣泛應(yīng)用。以單片機(jī)為核心的嵌入式系統(tǒng),單片機(jī)常需要連接多個(gè)串行外設(shè),如上位計(jì)算機(jī)、串口LCD、外部傳感器等。通常單片機(jī)只提供一到兩個(gè)異步串行通信接口(UART)。因此,為了實(shí)現(xiàn)多串口通信,必須對(duì)其串行口進(jìn)行擴(kuò)展。

    常見(jiàn)的串口擴(kuò)展方法有軟件模擬法和硬件擴(kuò)展法。軟件模擬法通過(guò)兩個(gè)通用I/O引腳、兩個(gè)定時(shí)器和一個(gè)外部中斷用軟件模擬UART的發(fā)送/接收功能,成本低,易于實(shí)現(xiàn),但占用資源多, 誤碼率高, 不適用于高速傳輸[1]。硬件擴(kuò)展法主要有三種方式: (1)基于普通I/O口的串口擴(kuò)展,如采用16C554芯片,其占用資源多,價(jià)格較貴; (2)基于USB的多串口擴(kuò)展,如專(zhuān)用USB/串口轉(zhuǎn)換器,可擴(kuò)展最多16路串口,性能可靠,但體積大,且價(jià)格隨串口數(shù)增加顯著提高;(3)基于SPI口的串口擴(kuò)展。
    本文采用GM814X串口擴(kuò)展接口芯片通過(guò)單片機(jī)的增強(qiáng)型串行外設(shè)接口(SPI)實(shí)現(xiàn)多串口擴(kuò)展。GM814X控制芯片在有限的資源下,可以增加擴(kuò)展串口的數(shù)量并且性?xún)r(jià)比較高,運(yùn)行可靠穩(wěn)定,便于嵌入式系統(tǒng)使用。該方法成功應(yīng)用于某RS-485通信終端開(kāi)發(fā)。此通信終端與實(shí)際設(shè)備對(duì)接,工作穩(wěn)定,設(shè)置靈活,滿(mǎn)足RS-485總線高速通信要求。
1 基于GM814X的串口擴(kuò)展
    GM814X是專(zhuān)用低功耗串行口擴(kuò)展芯片,該芯片主要是為了解決單片機(jī)等MCU自身的UART串口有限、不能與多個(gè)基于UART通信的外圍智能模塊及器件通信等問(wèn)題而推出的。它可將現(xiàn)有單片機(jī)的單串口或雙串口擴(kuò)展成2個(gè)(GM8141)或4個(gè)(GM8142)標(biāo)準(zhǔn)的UART,并具備兩種工作模式:串口擴(kuò)展模式和廣播模式。串口擴(kuò)展模式下,各子串口可獨(dú)立設(shè)置波特率、幀長(zhǎng)和校驗(yàn)方式,并同時(shí)與SPI接口進(jìn)行數(shù)據(jù)收發(fā)[2]。
1.1 SPI接口及時(shí)序
    增強(qiáng)型串行外設(shè)接口(SPI)提供訪問(wèn)一個(gè)全雙工同步串行總線的能力,可以使用3線或4線方式,并可在同一總線上支持多個(gè)主器件和從器件[3]。GM814X芯片是基于SPI接口實(shí)現(xiàn)的,因此SPI的時(shí)序?qū)Υ诠δ艿氖褂糜葹橹匾?,時(shí)序圖如圖1所示。由于SPI時(shí)序較為簡(jiǎn)單,利用GM8141擴(kuò)展串口時(shí)MCU選擇比較靈活,可選用帶SPI口的MCU(如C8051F340)實(shí)現(xiàn),也可用通用I/O口通過(guò)軟件模擬SPI實(shí)現(xiàn)。

    SPI 上的數(shù)據(jù)為16位,其中高8位為子串口地址及附加命令和狀態(tài)信息,低8位為實(shí)際收發(fā)數(shù)據(jù)。數(shù)據(jù)接收以時(shí)鐘上升沿為采樣標(biāo)志,數(shù)據(jù)發(fā)送以時(shí)鐘下降沿為移位標(biāo)志。16 bit的數(shù)據(jù)收發(fā)從CS為低時(shí)有效,當(dāng)CS拉高后,結(jié)束數(shù)據(jù)的收發(fā),并對(duì)數(shù)據(jù)進(jìn)行判斷和有效性分析。
1.2 GM814X芯片
    GM814X是一款兼容SPI總線的UART擴(kuò)展芯片,其工作模式、各子串口的波特率、數(shù)據(jù)幀長(zhǎng)等參數(shù)可通過(guò)向功能設(shè)置寄存器寫(xiě)入控制字進(jìn)行靈活設(shè)置,I/O口占用率低。通過(guò)寫(xiě)功能設(shè)置寄存器的波特率分頻標(biāo)志位,各子串口可在母串口波特率基礎(chǔ)上分頻同時(shí)工作。其主要指標(biāo)為:晶振頻率為3.686 4 MHz 時(shí), 波特率范圍為600 b/s~230.4 kb/s,輸出波特率誤差小于0.1%,輸入波特率誤差允許小于3.4%。以GM8141芯片為例,其引腳功能如圖2所示。

    SHDN為軟件shutdown控制標(biāo)志位,0為正常工作模式,1為低功耗掉電模式。掉電模式下,GM814X自動(dòng)清除中斷寄存器的內(nèi)容,但保留功能寄存器內(nèi)的數(shù)據(jù)。當(dāng)多個(gè)GM814X芯片掛在SPI總線上時(shí),外部MCU可通過(guò)CS引腳選擇與其中某個(gè)GM814X通信時(shí)的控制,以此實(shí)現(xiàn)芯片的并聯(lián)工作。
2 應(yīng)用設(shè)計(jì)
2.1 RS-485通信終端

    RS-485串行接口采用差分傳輸方式,半雙工方式通信,抗共模干擾能力強(qiáng),并可聯(lián)網(wǎng)構(gòu)成分布式系統(tǒng),在要求精度高的實(shí)際工業(yè)儀器中應(yīng)用廣泛[4]。
    本文設(shè)計(jì)的RS-485通信終端作為一個(gè)獨(dú)立的多路RS-485總線接口設(shè)備,具有多路RS-485信號(hào)的數(shù)據(jù)采集、發(fā)送及數(shù)據(jù)處理功能。通過(guò)外接LCD顯示屏及矩陣鍵盤(pán)提供獨(dú)立的人際交互手段。此外,該終端還可與PC機(jī)構(gòu)成上、下位機(jī)系統(tǒng),實(shí)現(xiàn)更為復(fù)雜的功能。其硬件組成如圖3所示。

    根據(jù)設(shè)備配置,該通信終端需要4個(gè)串口:C8051F340自帶的UART0用于與串口LCD屏通信,與矩陣鍵盤(pán)配合,實(shí)現(xiàn)參數(shù)顯示和人機(jī)交互;自帶的UART1用于上位機(jī)進(jìn)行RS-232通信,用于接收其指令或數(shù)據(jù)信息;擴(kuò)展的兩個(gè)串口用于與RS-485外設(shè)進(jìn)行RS-485總線通信。
2.2 電路設(shè)計(jì)
    選用C8051F340作為主控MCU,C8051F340具有豐富的數(shù)字外設(shè)如UART、SPI、SMBus/I2C、USB等資源,在工程中得到廣泛應(yīng)用。通過(guò)GM8141實(shí)現(xiàn)串口擴(kuò)展,一片MAX232實(shí)現(xiàn)兩路單片機(jī)TTL電平與RS-232C電平的雙向轉(zhuǎn)換,兩片MAX485實(shí)現(xiàn)GM8141的TTL電平與RS-485電平的雙向轉(zhuǎn)換。電路圖見(jiàn)圖4。

 

 

    GM8141與單片機(jī)采用SPI口的3線單主方式和3線單從方式連接,SPI時(shí)鐘為250 kHz。IRQ引腳外接30 k?贅上拉電阻。當(dāng)FIFO 接收到數(shù)據(jù)后置位R,并產(chǎn)生IRQ 中斷,該IRQ 中斷連接C8051340的P0.3管腳,當(dāng)單片機(jī)響應(yīng),且對(duì)GM814X 進(jìn)行了收(發(fā))數(shù)據(jù)操作后,該中斷即被清除;若接收FIFO 內(nèi)還有數(shù)據(jù),則繼續(xù)重復(fù)產(chǎn)生新的IRQ中斷和置位R,直到FIFO 內(nèi)的數(shù)據(jù)被讀取完;片選信號(hào)CS連接單片機(jī)的P1.6管腳,控制SPI時(shí)鐘的有效性。
    MAX485的發(fā)送/接收轉(zhuǎn)換器由使能端RE和DE控制。當(dāng)RE和DE都為0時(shí), MAX485處于接收狀態(tài);RE和DE都為1時(shí),MAX485處于發(fā)送狀態(tài)。用于遠(yuǎn)距離傳輸時(shí),應(yīng)在A+和B-輸出端并接匹配電阻。
2.3 軟件設(shè)計(jì)
    單片機(jī)采用C51語(yǔ)言編程,在Keil uVision3集成開(kāi)發(fā)環(huán)境下調(diào)試。
    使用GM8141進(jìn)行擴(kuò)展串口通信之前,首先進(jìn)行初始化。SPI的初始化需設(shè)置工作方式和時(shí)鐘頻率。GM8141的初始化需要設(shè)置工作模式,字串口的波特率和數(shù)據(jù)幀長(zhǎng)等,通過(guò)向配置寄存器中寫(xiě)入相應(yīng)的控制字實(shí)現(xiàn)。
  終端對(duì)于RS-485外設(shè)的通信主要是接收和發(fā)送數(shù)據(jù)程序,應(yīng)嚴(yán)格按照?qǐng)D3中的SPI接口時(shí)序圖進(jìn)行設(shè)計(jì)。
  以下為部分程序代碼,串口擴(kuò)展通信時(shí)僅給出RS-485通道1的發(fā)送接收程序,通道2類(lèi)似,多串口通信初始化程序流程如圖5所示。

    (1)初始化:
    void SPI0_Init()
    功能:對(duì)SPI進(jìn)行初始化
    {
           SPI0CFG=0x40;    //設(shè)置工作方式、3線模式
           SPI0CN=0x01;    //使能SPI
           SPI0CKR=23;    //SPI0時(shí)鐘為250 kHz
    }
    void Init_System()
    功能:對(duì)GM8141進(jìn)行初始化
    {
        uint temp=0;
        while(cnt0<240);          //等待LCD初始化
         W_8141Config(1,1,11);   
                       //串口1、發(fā)送中斷屏蔽、波特率57 600
    temp=Read8141Config(1);  //讀取配置返回結(jié)果
    EX0=1;                   
                           //開(kāi)外部中斷(允許接收485信號(hào))
    }
    調(diào)用函數(shù)說(shuō)明:
       ①void W_8141Config(uchar n, uchar high, uchar low)
     功能:配置GM8141指定串口、波特率,屏蔽設(shè)置等
  參數(shù):n為串口號(hào);high為配置寄存器的高位字節(jié)(低三位有效),low為低位字節(jié)。
       ②uint Read8141Config(uchar n) 
  功能:讀GM8141配置后的狀態(tài)
    (2) GM8141發(fā)送函數(shù):
    uint WR_8141(uchar W_com, uchar W_dat)    
    參數(shù):W_com是對(duì)要發(fā)送的數(shù)據(jù)配置、W_dat是發(fā)送數(shù)據(jù),W_dat與W_com的發(fā)送程序一樣
    {
        uint R_state,R_dat; uint Receive;
        CS=0;                                        //GM8141有效
    Delay(20);     
                //SPI時(shí)序要求時(shí)間:CS低電平到第一次
                                       SCLK的延遲時(shí)間Tcss           SPI0DAT=W_com;  
                         //向SPI0數(shù)據(jù)寄存器中寫(xiě)入配置信息
        while(!SPIF);                    //等待SPI發(fā)送數(shù)據(jù)結(jié)束
        SPIF=0;                  //清SPI數(shù)據(jù)結(jié)束中斷標(biāo)志位
        Delay(80);                      //SPI時(shí)序要求延遲時(shí)間
           R_state=SPI0DAT;               //讀取GM8141接收值
        &hellip;&hellip;
    }
    (3) GM8141接收函數(shù):
    uint ReadFIFOData(void)
    {
        uint Receive;    
        Receive=WR_8141(0x00,0x00);
                                 //GM8141單獨(dú)數(shù)據(jù)接收模式
    return Receive;                    //讀出接收FIFO數(shù)據(jù)
    }
    C8051F340需要處理多種外設(shè)信息,應(yīng)合理安排單片機(jī)的中斷優(yōu)先級(jí)。本電路中,優(yōu)先考慮RS-485外設(shè)的高速通信,設(shè)置為高優(yōu)先級(jí),并采用外部中斷0方式接收RS-485數(shù)據(jù)。當(dāng)GM8141接收數(shù)據(jù)時(shí),接收中斷中應(yīng)首先接收完整數(shù)據(jù),然后判斷子串口的數(shù)據(jù)地址信息;發(fā)送數(shù)據(jù)時(shí)所發(fā)送的數(shù)據(jù)幀應(yīng)該包含其到達(dá)的子串口地址,這樣才能實(shí)現(xiàn)正確接收。
    在實(shí)驗(yàn)室條件下進(jìn)行前期調(diào)試開(kāi)發(fā)時(shí),通過(guò)RS-232與RS-485轉(zhuǎn)換器實(shí)現(xiàn)PC機(jī)模擬實(shí)際裝備的RS-485信號(hào)進(jìn)行通信,各串口測(cè)試運(yùn)行良好;后期實(shí)裝對(duì)接時(shí),與RS-485外設(shè)通信穩(wěn)定可靠,可實(shí)現(xiàn)多路RS-485信號(hào)的通信,實(shí)時(shí)性和可靠性均能達(dá)到要求。實(shí)踐表明,通過(guò)GM814X擴(kuò)展串口可以很好地解決串行通信系統(tǒng)的串口局限問(wèn)題。隨著單片機(jī)的廣泛應(yīng)用,此類(lèi)擴(kuò)展串口方法在解決同類(lèi)問(wèn)題中具有一定的使用參考價(jià)值。
參考文獻(xiàn)
[1] 張毅坤.單片微型計(jì)算機(jī)原理及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2006.
[2] 成都國(guó)騰微電子. GM8141/2數(shù)據(jù)手冊(cè)[M]. 2006.
[3] 潘琢金.C8051Fxxx高速SOC單片機(jī)原理及[M]. 北京:北京航空航天大學(xué)出版社,2002.
[4] 劉小芳.單片機(jī)的多串口擴(kuò)展技術(shù)的設(shè)計(jì)[J]. 計(jì)算機(jī)測(cè)量與控制,2004,12(11):1088-1090.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
新片速递亚洲合集欧美合集| av成人手机在线| 亚洲人体大胆视频| 国产亚洲成av人在线观看导航 | 亚洲人成高清| 久久精品一二三| 欧美在线|欧美| 欧美一区二区三区视频| 香蕉精品999视频一区二区 | 欧美夜福利tv在线| 新狼窝色av性久久久久久| 亚洲一区国产| 亚洲男人第一av网站| 亚洲视频在线观看一区| 亚洲一区二区精品在线观看| 中文在线不卡视频| 亚洲一卡久久| 亚洲欧美日韩一区二区在线| 亚洲欧美文学| 欧美一区二区精品在线| 性欧美1819性猛交| 欧美有码视频| 亚洲国产精品尤物yw在线观看 | 性欧美在线看片a免费观看| 午夜激情一区| 久久成人国产| 久久综合久久美利坚合众国| 久久综合影音| 女同一区二区| 欧美日韩一区国产| 国产免费亚洲高清| 好吊色欧美一区二区三区四区 | 午夜亚洲性色视频| 久久国产精品久久久久久久久久| 亚洲二区在线观看| 日韩视频一区| 亚洲欧美日韩国产综合| 欧美一区二区三区四区在线观看地址| 久久精品人人做人人综合| 美脚丝袜一区二区三区在线观看| 男人天堂欧美日韩| 欧美日韩在线免费观看| 国产精品一卡二| 一区在线免费观看| 9久re热视频在线精品| 亚洲欧美另类中文字幕| 亚洲国产成人在线视频| 一区二区三区回区在观看免费视频| 亚洲欧美一区二区视频| 久久夜色精品国产亚洲aⅴ| 欧美国产国产综合| 国产精品久久久91| 极品尤物久久久av免费看| 亚洲精品一区在线观看| 亚洲在线视频| 亚洲国产你懂的| 亚洲一区二区精品视频| 久久久久久亚洲精品杨幂换脸 | 亚洲欧美视频在线观看| 亚洲三级影院| 欧美一级黄色录像| 欧美韩日亚洲| 国产农村妇女毛片精品久久麻豆| 亚洲第一区在线观看| 在线视频精品一区| 亚洲第一精品在线| 亚洲欧美国产高清| 欧美不卡一区| 国产精品欧美日韩一区| 在线国产亚洲欧美| 亚洲欧美国产高清va在线播| 亚洲国产婷婷香蕉久久久久久| 亚洲视频在线二区| 麻豆成人av| 国产欧美一区二区三区视频| 亚洲黄色免费网站| 久久成人国产| 亚洲欧美一区二区在线观看| 欧美大尺度在线观看| 国产精品婷婷| 亚洲毛片网站| 久久丁香综合五月国产三级网站| 亚洲一区二区高清| 欧美激情精品久久久久| 国产日韩欧美成人| 中日韩美女免费视频网站在线观看| 亚洲国产精品久久人人爱蜜臀 | 亚洲国产精品小视频| 午夜电影亚洲| 亚洲影视综合| 欧美极品在线播放| 伊人婷婷欧美激情| 午夜视频一区二区| 亚洲免费在线视频| 欧美日韩大片一区二区三区| 精品不卡在线| 欧美影院视频| 欧美在线视频观看| 国产精品另类一区| 亚洲精品综合精品自拍| 亚洲国语精品自产拍在线观看| 久久国产加勒比精品无码| 欧美性做爰毛片| 91久久精品国产91久久性色| 亚洲国产va精品久久久不卡综合| 欧美在线免费看| 国产精品自在线| 亚洲综合精品自拍| 亚洲欧美福利一区二区| 欧美午夜精品理论片a级大开眼界| 1024精品一区二区三区| 亚洲第一福利在线观看| 久久精品视频导航| 国产丝袜美腿一区二区三区| 亚洲欧美国产高清| 久久成人人人人精品欧| 国产伦理一区| 香蕉乱码成人久久天堂爱免费| 亚洲欧美一区二区精品久久久| 国产精品久久国产精麻豆99网站| 日韩亚洲欧美一区二区三区| 日韩亚洲欧美成人| 欧美精品九九| 日韩视频免费在线观看| 在线亚洲精品| 欧美色图五月天| 亚洲视频香蕉人妖| 亚洲欧美三级在线| 国产美女精品免费电影| 午夜久久资源| 久久久久亚洲综合| 伊人春色精品| 亚洲麻豆av| 欧美日韩视频在线一区二区| 99天天综合性| 亚洲一级在线观看| 国产精品午夜电影| 欧美中文在线观看| 欧美国产欧美亚州国产日韩mv天天看完整| 亚洲国产美女精品久久久久∴| 亚洲精品资源| 欧美色图五月天| 亚洲欧美中文在线视频| 久久综合中文色婷婷| 亚洲激情啪啪| 亚洲永久在线观看| 国产日韩精品视频一区| 久久精品首页| 欧美精品在线播放| 亚洲天堂免费观看| 久久精品综合一区| 亚洲高清av在线| 亚洲视频久久| 国产日韩一区二区三区| 亚洲电影免费在线| 欧美日本一区二区高清播放视频| 亚洲精品国产精品国自产在线 | 欧美视频一区二区在线观看| 亚洲伊人一本大道中文字幕| 久久久欧美精品| 亚洲激情自拍| 午夜视黄欧洲亚洲| 伊人婷婷久久| 亚洲一区二区三区四区中文 | 欧美日韩精品免费看| 亚洲中无吗在线| 男女视频一区二区| 亚洲午夜一区二区三区| 久久男人av资源网站| 亚洲伦理中文字幕| 久久精品理论片| 亚洲免费精品| 久久人人看视频| 9国产精品视频| 久久人人精品| 亚洲午夜精品福利| 蜜乳av另类精品一区二区| 一级成人国产| 免费成年人欧美视频| 一区二区电影免费观看| 久久中文字幕一区二区三区| 99国产精品| 老司机免费视频一区二区| 一区二区成人精品 | 欧美国产激情| 先锋影音网一区二区| 欧美日韩免费精品| 亚洲黄色尤物视频| 国产精品区免费视频| 亚洲另类在线视频| 国产无遮挡一区二区三区毛片日本| 日韩视频在线观看| 国模吧视频一区| 亚洲欧美日韩国产| 亚洲高清成人| 久久精品国产91精品亚洲| 一区二区三区不卡视频在线观看| 久久在精品线影院精品国产| 亚洲视频久久| 欧美日韩国产综合在线|