《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于GM814X的單片機串口擴展及其應用
基于GM814X的單片機串口擴展及其應用
來源:電子技術應用2012年第9期
張 偉, 李文魁, 陳永冰
海軍工程大學,湖北 武漢430033
摘要: 介紹了基于C8051F340單片機和GM814X串口擴展芯片的串口擴展方法。針對實際裝備的通信和接口需求,進行了RS-485通信終端的電路軟硬件設計。實際應用表明,該通信終端設計可靠,性價比高,解決了單片機在串行通信系統中的串口局限問題。
中圖分類號: TP334
文獻標識碼: A
文章編號: 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

    在嵌入式系統中,串行接口設備憑借其控制靈活、接口簡單、占用系統資源少等優點而得到廣泛應用。以單片機為核心的嵌入式系統,單片機常需要連接多個串行外設,如上位計算機、串口LCD、外部傳感器等。通常單片機只提供一到兩個異步串行通信接口(UART)。因此,為了實現多串口通信,必須對其串行口進行擴展。

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

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

    SHDN為軟件shutdown控制標志位,0為正常工作模式,1為低功耗掉電模式。掉電模式下,GM814X自動清除中斷寄存器的內容,但保留功能寄存器內的數據。當多個GM814X芯片掛在SPI總線上時,外部MCU可通過CS引腳選擇與其中某個GM814X通信時的控制,以此實現芯片的并聯工作。
2 應用設計
2.1 RS-485通信終端

    RS-485串行接口采用差分傳輸方式,半雙工方式通信,抗共模干擾能力強,并可聯網構成分布式系統,在要求精度高的實際工業儀器中應用廣泛[4]。
    本文設計的RS-485通信終端作為一個獨立的多路RS-485總線接口設備,具有多路RS-485信號的數據采集、發送及數據處理功能。通過外接LCD顯示屏及矩陣鍵盤提供獨立的人際交互手段。此外,該終端還可與PC機構成上、下位機系統,實現更為復雜的功能。其硬件組成如圖3所示。

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

 

 

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

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

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          国产精品视频网站| 亚洲免费在线精品一区| 国产欧美在线视频| 国产伦精品一区二区三区| 亚洲一区二区少妇| 亚洲精品网址在线观看| 久久精品国产精品亚洲| 国产精品久99| 9久re热视频在线精品| 久久精品亚洲乱码伦伦中文| 在线观看视频一区二区| 亚洲国产成人在线视频| 国产伦理精品不卡| 国产在线麻豆精品观看| 欧美 日韩 国产一区二区在线视频| 这里只有精品视频在线| 久久久久久久久久久久久女国产乱| 99这里只有精品| 亚洲一二三区在线观看| 欧美一区二区精美| 欧美乱人伦中文字幕在线| 欧美午夜不卡影院在线观看完整版免费| 国产精一区二区三区| 136国产福利精品导航网址| 欧美午夜精品电影| 亚洲乱码一区二区| 久久久久久**毛片大全| 在线观看不卡av| 国产精品亚洲综合天堂夜夜| 久久九九免费| 鲁鲁狠狠狠7777一区二区| 国产婷婷色一区二区三区在线| 欧美日韩在线视频首页| 欧美日韩精品久久久| 欧美高清视频一区二区| 国产精品―色哟哟| 亚洲综合激情| 国产一区二区观看| 狠狠入ady亚洲精品经典电影| 尤物九九久久国产精品的分类| 久久精品国产第一区二区三区| 欧美午夜不卡在线观看免费| 一区二区三区**美女毛片| 亚洲精品视频中文字幕| 欧美国产丝袜视频| 夜夜嗨av一区二区三区| 在线看片成人| 国产精品欧美一区二区三区奶水| 久久亚洲美女| 性久久久久久久久| 性色av一区二区三区| 合欧美一区二区三区| 麻豆国产精品777777在线| 久久―日本道色综合久久| 国产日韩在线播放| 国产美女在线精品免费观看| 欧美日本乱大交xxxxx| 欧美日韩在线一区二区三区| 亚洲午夜在线| 一本久道久久综合中文字幕| 亚洲欧美制服另类日韩| 麻豆视频一区二区| 国产精品午夜av在线| 亚洲高清不卡在线| 欧美特黄视频| 亚洲每日在线| 国产精品日韩欧美一区二区三区| 一区二区三区精品| 女女同性女同一区二区三区91| 欧美大片免费观看| 亚洲视频999| 欧美亚洲免费高清在线观看| 欧美日韩精品一二三区| 美女主播精品视频一二三四| 欧美黄色免费网站| 亚洲欧美日韩综合国产aⅴ| 夜夜嗨av一区二区三区网站四季av| 午夜精品区一区二区三| 精品电影在线观看| 欧美在线影院| 欧美私人啪啪vps| 精久久久久久久久久久| 亚洲一级网站| 亚洲主播在线| 1000精品久久久久久久久| 一区二区不卡在线视频 午夜欧美不卡'| 欧美视频在线一区| 国产精品网站在线| 亚洲欧美日韩在线观看a三区| 亚洲欧美日韩在线高清直播| 国产欧美va欧美不卡在线| 亚洲一区二区三区四区在线观看| 欧美制服丝袜第一页| 亚洲丁香婷深爱综合| 亚洲精品一区二区三区99| 欧美午夜www高清视频| 国产一区二区你懂的| 在线播放精品| 亚洲一区二区免费视频| 久久精品亚洲国产奇米99| 欧美激情视频一区二区三区在线播放| 黄色亚洲大片免费在线观看| 国产伦精品一区二区三| 亚洲激情在线观看视频免费| 欧美伦理视频网站| 久久久美女艺术照精彩视频福利播放| 亚洲人成久久| 欧美网站在线观看| 日韩午夜在线观看视频| 欧美日韩视频| 国产精品一区二区三区观看| 国产欧美日韩精品一区| 久久久久五月天| 亚洲欧美精品| 欧美主播一区二区三区美女 久久精品人| 欧美日一区二区三区在线观看国产免| 精品成人久久| 日韩视频久久| 最新热久久免费视频| 欧美啪啪成人vr| 亚洲第一福利视频| 樱桃视频在线观看一区| 亚洲国产一区二区a毛片| 欧美日韩精品免费观看视频| 一本色道久久综合亚洲精品不| 欧美午夜激情小视频| 午夜精品三级视频福利| 这里只有精品视频在线| 在线观看欧美日韩国产| 国产精品一区二区男女羞羞无遮挡| 亚洲视频在线播放| 欧美在线观看你懂的| 欧美三级精品| 在线看片欧美| 欧美日韩成人| 两个人的视频www国产精品| 午夜精品一区二区三区四区| 亚洲男女毛片无遮挡| 久久精品一区二区三区中文字幕| 一区二区电影免费在线观看| 这里只有精品视频| 国产日韩欧美91| 亚洲第一视频| 欧美精品日韩三级| 亚洲网在线观看| 在线看国产一区| 欧美日韩一区二区在线视频| 久热精品视频在线| 国产午夜精品全部视频在线播放| 亚洲男女自偷自拍| 午夜久久电影网| 一区二区三区导航| 久久久亚洲影院你懂的| 亚洲一区在线播放| 国产免费观看久久| 欧美国产日本韩| 亚洲免费av观看| 欧美视频中文字幕在线| 老司机凹凸av亚洲导航| 久久久久国产精品一区| 久久综合久久久久88| 久久久蜜臀国产一区二区| 午夜国产欧美理论在线播放| 国产日韩精品一区二区浪潮av| 国产亚洲精品成人av久久ww| 欧美日本国产精品| 欧美成人精品影院| 国产日韩精品一区| 欧美日韩高清在线播放| 久久久久久久综合| 亚洲激情自拍| 欧美一区日本一区韩国一区| 在线激情影院一区| 91久久久久| 亚洲精品一区二区在线观看| 久久久精品久久久久| 欧美在线国产精品| 麻豆精品在线播放| 国产精品久久久久av| 国产精品都在这里| 日韩亚洲不卡在线| 日韩亚洲一区在线播放| 蜜臀久久99精品久久久画质超高清| 一本一本久久a久久精品综合妖精| 久久爱另类一区二区小说| 午夜欧美大片免费观看| 欧美色图首页| 99国产欧美久久久精品| 国产精品大片| 宅男噜噜噜66国产日韩在线观看| 久久精品一二三区| 国产亚洲欧美日韩精品| 黄色欧美日韩| 1024成人| 性娇小13――14欧美| 中文在线不卡| 日韩网站在线看片你懂的| 在线视频一区二区| 国产一区二区激情| 最新亚洲一区| 欧美.日韩.国产.一区.二区| 一本色道久久加勒比88综合| 国产精品网站在线播放| 亚洲精品在线免费| 免费中文日韩| 亚洲欧美成人综合| 一级成人国产| 欧美日韩视频在线一区二区观看视频| 亚洲日本一区二区三区| 亚欧成人在线| 欧美欧美午夜aⅴ在线观看| 欧美第十八页| 国产午夜精品理论片a级探花| 一本色道久久综合亚洲二区三区| 久久精品亚洲一区二区三区浴池| 国产精品你懂得| 久久精品欧美日韩精品| 国产精品久久久久9999| 欧美另类videos死尸| 精品不卡一区| 久久成人这里只有精品| 一区二区精品在线观看| 国产亚洲欧美日韩一区二区| 欧美 日韩 国产一区二区在线视频| 欧美日韩免费区域视频在线观看| 欧美色大人视频| 欧美一区国产二区| 亚洲国产精品第一区二区| 国内成人精品视频| 亚洲国产美女精品久久久久∴| 国产精品有限公司| 欧美亚州在线观看| 亚洲你懂的在线视频| 亚洲精品乱码久久久久久蜜桃91| 久久亚洲捆绑美女| 91久久精品www人人做人人爽| 国产精品久久久亚洲一区| 最新亚洲激情| 久久视频一区二区| 久久九九热re6这里有精品| 亚洲午夜小视频| 欧美成人一区在线| 欧美电影免费观看| 国产精品久久一级| 欧美日韩国产亚洲一区| 国产精品亚洲美女av网站| 国产精品视频午夜| 国产午夜精品一区二区三区欧美| 久久久欧美精品| 先锋亚洲精品| 在线观看国产精品淫| 美国十次了思思久久精品导航| 欧美日韩一区二区视频在线观看| 欧美日韩免费网站| 欧美国产先锋| 亚洲精品久久久一区二区三区| 国产有码在线一区二区视频| 欧美成人在线免费观看| 免费国产自线拍一欧美视频| 欧美日本久久| 欧美一区二区高清在线观看| 久久理论片午夜琪琪电影网| 一区二区三区国产精华| 模特精品在线| 国产精品婷婷午夜在线观看| 欧美理论片在线观看| 欧美特黄一级大片| 麻豆av一区二区三区久久| 午夜免费电影一区在线观看| 亚洲免费影视| 在线中文字幕日韩| 国产精品女人久久久久久| 老司机精品视频一区二区三区| 亚洲国产高清一区| 红桃视频欧美| 国产精品视频精品视频| 亚洲视频在线免费观看| 亚洲宅男天堂在线观看无病毒| 激情综合亚洲| 91久久久亚洲精品| 一区二区三区日韩精品| 性高湖久久久久久久久| 久久一二三国产| 久久久精品性| 韩国精品久久久999| 欧美日本久久| 国产精品va在线播放我和闺蜜| 欧美日韩高清一区| 欧美一区二区免费观在线| 久久精品视频免费播放| 国产精品一香蕉国产线看观看| 1024亚洲| 欧美亚洲免费高清在线观看| 国产中文一区| 欧美日韩大片一区二区三区| 欧美日韩国产123| 精品福利免费观看| 国产一区成人| 欧美日韩黄色大片| 亚洲国产精品成人va在线观看| 久久午夜视频| 亚洲天堂免费观看| 亚洲国产成人av在线| 国产精品亚洲第一区在线暖暖韩国| 国产亚洲亚洲| 亚洲深夜福利在线| 影音先锋中文字幕一区| 久久久免费精品| 亚洲字幕一区二区| 亚洲最新中文字幕| 国产日韩在线播放| 久久精品视频免费观看| 在线播放国产一区中文字幕剧情欧美| 这里只有精品在线播放| 夜夜嗨av一区二区三区网站四季av| 午夜视频久久久久久| 国产精品视频九色porn| 欧美午夜一区二区福利视频| 亚洲欧美激情诱惑| 欧美www在线| 噜噜噜噜噜久久久久久91| 久久精品国产69国产精品亚洲| 亚洲人成高清| 韩国视频理论视频久久| 欧美福利视频在线观看| 欧美三级中文字幕在线观看| 欧美成人免费va影院高清| 久久精品在线免费观看|