朱苗苗,牛國鋒,張明新
(常熟理工學院計算機科學與工程學院,江蘇常熟215500)
基于瑞薩MCU的三方交互通信實現(xiàn)
朱苗苗,牛國鋒,張明新
(常熟理工學院計算機科學與工程學院,江蘇常熟215500)
以三個瑞薩78K0R微控制器為核心,外接功能模塊分別采用C語言編程實現(xiàn)不同的功能,然后根據(jù)串行通信原理設計搭建了三方之間交互通信環(huán)境,通過控制不同的MCU相互收發(fā)數(shù)據(jù),實現(xiàn)瑞薩微控制器之間可靠穩(wěn)定的數(shù)據(jù)傳輸功能,并通過各自液晶顯示終端顯示相應MCU之間的收發(fā)狀態(tài)和各功能模塊實現(xiàn)情況.該設計實現(xiàn)三方交互通信方式成本低,數(shù)據(jù)傳輸靈活、方便、可靠,具有較高的實用性.
瑞薩;微控制器;三方交互;串行通信
目前在通信領域內(nèi),雖然無線通信技術已經(jīng)比較成熟,但串行通信技術在實際生活和研究中都占據(jù)著重要地位.串行通信只需要少數(shù)幾條線就可以在設備間進行信息交換,因此,串行通信非常適用于在低速率、長距離通信.隨著計算機及各種微控制器為主導的電子產(chǎn)品的應用,相互之間的通信功能也越來越重要,特別是在人們的生活和生產(chǎn)中,各種微控制器設備之間或者與外設之間經(jīng)常要進行交互式數(shù)據(jù)交換和傳輸,串行通信數(shù)據(jù)傳輸是目前微控制器之間交互通信的一種有效手段,特別是多臺微控制器之間相互協(xié)作通信,通過簡單的控制線來實現(xiàn)它們之間的信息交流,各微控制器之間互為主從機,按照通信協(xié)議進行數(shù)據(jù)收發(fā),大大提高了單片機的利用效率和功能,具有較高的實用性.
1.1瑞薩微控制器
微控制器技術的應用,實現(xiàn)了傳感器前端信號檢測的智能化,促進了電子技術將推動以傳感器為前端的電子系統(tǒng)的飛速發(fā)展.瑞薩電子在新型微控制器產(chǎn)品中加入了節(jié)能理念[1],其中16位低功耗閃存78K0R系列微控制器產(chǎn)品具有低耗電量、智能化節(jié)能控制及高效能等特點,其整合多種周邊功能,使其依靠單MCU實現(xiàn)低成本、高性能的綠色節(jié)能系統(tǒng),功能強大,具有支持尺寸更小、功耗更低的系統(tǒng)等主要特性[2].
本設計主要以瑞薩78K0R/KG3系列uPD78F1166型號芯片為核心進行設計實現(xiàn).
1.2串行通信
串行通信是把數(shù)據(jù)按照字節(jié)在一條傳輸線上逐個按若干位為單位進行傳輸,傳輸過程中需要一條傳輸線和若干控制信號線.對于每一個字節(jié)的數(shù)據(jù)按照一次一位進行傳輸,雙方必須按照制定好的通信約定,通過數(shù)據(jù)位長短的變化表達固定的信息.串行通信的優(yōu)點是傳輸線少,長距離傳輸成本低[3].
1.2.1串行通信原理
在串行通信技術中,為了通信的正常穩(wěn)定,要考慮系統(tǒng)的通信速率、時鐘頻率等因素[4],共同遵守通信協(xié)議規(guī)則.微控制器與計算機的串口通信也根據(jù)約定的協(xié)議,即可進行通信完成相應的操作.
1.2.2串行通信方式
串行通信可分為同步串行通信和異步串行通信兩種方式.同步串行通信是指通信時要同步建立發(fā)送方時鐘對接收方時鐘的直接控制,使雙方達到完全同步[5].異步串行通信是指通信的發(fā)送與接收設備使用各自的時鐘控制數(shù)據(jù)的發(fā)送和接收過程.本設計采用同步串行通信方式收發(fā)數(shù)據(jù)信息.
2.1各硬件模塊及實現(xiàn)功能
在實現(xiàn)交互通信的過程中,以各自微控制器和不同硬件模塊實現(xiàn)不同的功能為基礎,進行數(shù)據(jù)的收發(fā)傳輸.用到的主要硬件模塊及功能如下:
(1)LED.LED數(shù)碼管是多個LED應用最典型的電子元件,本設計采用8位數(shù)碼管顯示時間[6].
(2)液晶顯示屏.LCD液晶顯示屏作為微控制器顯示終端,能夠便捷、直觀地進行各種數(shù)據(jù)和圖形的顯示.設計中采用128*64點陣液晶顯示屏對收發(fā)數(shù)據(jù)和各自實現(xiàn)的功能狀態(tài)進行監(jiān)測顯示.
(3)矩陣鍵盤.本設計采用4*4矩陣鍵盤為微控制器提供字母或數(shù)字輸入、方向控制、通信選擇控制以及模塊功能控制.
(4)溫度傳感器.設計使用的是靈敏度較高的LM35溫度傳感器,用來測量實時的溫度值.
(5)可變電壓傳感器.可變電壓傳感器測量電壓值范圍0—5V,通過可調(diào)電阻值來調(diào)節(jié)并測量實時電壓值,采集到的模擬電壓值經(jīng)模數(shù)轉換后輸出實際電壓值.
(6)步進電機.步進電機根據(jù)步控制信號執(zhí)行離散的角度變化,實現(xiàn)馬達的轉速和轉動方向控制.
2.2硬件設計
系統(tǒng)設計主要采用三個單獨的微控制器,外接一些傳感器、7段LED、鍵盤和顯示液晶屏等,先各自實現(xiàn)不同的功能,然后相互之間協(xié)商通信,將數(shù)據(jù)或狀態(tài)發(fā)送給其他微控制器,并在終端顯示.為了便于區(qū)分,3個微控制器分別標記為MCU1、MCU2和MCU3.
MCU1外接4*4矩陣鍵盤、8位LED數(shù)碼管和128*64LCD液晶顯示屏,主要實現(xiàn)時間的同時顯示,顯示格式為XX(時):XX分:XX秒.
MCU2外接4*4矩陣鍵盤、溫度傳感器、可變電壓傳感器和128*64LCD液晶顯示屏,通過AD轉換模塊實現(xiàn)溫度和電壓的實時測量,并同時顯示在LCD液晶顯示屏上,顯示格式為:VR=X.XX V,TEMP=XX.X C.
MCU3外接步進馬達和能夠控制馬達的按鍵、128*64LCD液晶顯示屏,按鍵主要實現(xiàn)控制步進馬達的正轉、反轉、轉速和停止,LCD顯示馬達的開關狀態(tài)、左轉或右轉狀態(tài).
三個微控制器通過串行通信功能接口之間單線閉環(huán)連接.MCU1發(fā)送信號給MCU2,MCU2接收信號后開始工作,將工作后的數(shù)據(jù)發(fā)送給MCU3,之后MCU3收到MCU2發(fā)來的信號后保存MCU2的數(shù)據(jù),然后工作記錄MCU3的數(shù)據(jù),最后將MCU2和MCU3的數(shù)據(jù)發(fā)送給MCU1,MCU1將這兩個數(shù)據(jù)保存,做出相應的工作.
通信中采用三個獨立的瑞薩MCU作為核心,硬件各個接口連接示意圖如圖1所示.
3.1通信協(xié)議設計
在串行通信過程中,數(shù)據(jù)發(fā)送和接收方都是按照一個字節(jié)的數(shù)據(jù)以每次發(fā)送單個位數(shù)據(jù)進行,并遵循一定的通信協(xié)議.本設計中設定三方協(xié)商通信每幀共12位,格式為:幀首(1bit)+地址位(1bit)+幀長(1bit)+數(shù)據(jù)(8bit)+校驗位(1bit),協(xié)議以十六進制表示.通信過程中,在接收端接收到具有標志位(包括幀首、地址、幀長)后的8位就會重構一個字節(jié)的數(shù)據(jù),保存到相應的位置后,再進行下一個字節(jié)數(shù)據(jù)的收發(fā),直到數(shù)據(jù)收發(fā)完成.
圖1 硬件連接示意圖
3.2程序設計流程圖
實現(xiàn)三個微控制之間的交互通信是通過兩兩之間的通信來實現(xiàn)的,兩個MCU之間的通信實現(xiàn)程序設計流程如圖2所示.
圖2 兩個MCU之間通信實現(xiàn)程序設計流程圖
3.3程序設計實現(xiàn)
編譯開發(fā)環(huán)境采用瑞薩專用的CubeSuite集成型開發(fā)環(huán)境[7]和MINICUBE2仿真器技術.三個核心MCU分別通過具有Flash編程功能的片上調(diào)試仿真編譯器Minicube2與各自的電腦主機連接.完成所有的設計、編碼、評估和驗證任務.
在CubeSuite集成型開發(fā)環(huán)境中,根據(jù)MCU對應型號選擇78K0R/KG3,芯片組uPD78F1166(100pin),建立新的工程Project,工程建好后按照外接設備功能設計要求進行相應端口配置,C語言編程實現(xiàn)各自的功能及相應的模塊功能.然后再編程實現(xiàn)三個MCU之間協(xié)商通信,調(diào)試完成后進行系統(tǒng)編譯生成該工程,并同時通過瑞薩Debug工具——片上調(diào)試器將編寫好的程序燒寫入到相應的MCU芯片自帶內(nèi)存中保存,接通電源即可獨立運行.
4.1三方交互通信模型
三個微控制器各自實現(xiàn)各自不同的功能,然后它們之間互為主從機,通過串口控制線連接后,開始相互協(xié)作,按照設計好的通信協(xié)議實現(xiàn)兩兩之間的相互通信,最終實現(xiàn)三者間的數(shù)據(jù)收發(fā)和交互通信.
MCU1主要實現(xiàn)時間的同步顯示,8位數(shù)碼管和液晶屏的時間顯示格式同步為TIME:XX(時):XX(分):XX(秒).當MCU1時間顯示正常開始發(fā)送數(shù)據(jù)給MCU2時,按鍵控制發(fā)送TX-2狀態(tài)顯示ON,MCU2接收端接收到數(shù)據(jù)后保存并在RX-TIME相應位置顯示時間;TX-2狀態(tài)顯示OFF,接收端停止.采用同樣方法MCU1發(fā)送數(shù)據(jù)到MCU3,MCU3在終端LCD上顯示接收到的數(shù)據(jù).
MCU2實現(xiàn)溫度和電壓的實時測量,并通過AD轉換模塊將模擬電壓信號和溫度值轉換成標準電壓值和攝氏溫度值,并同時顯示在LCD液晶顯示屏上,顯示格式為:VR=X.XX V,TEMP=XX.X C.MCU2在自身電壓值和溫度值測量正常的情況下發(fā)送數(shù)據(jù)給MCU1,當按鍵控制TX-1位置狀態(tài)顯示ON時,MCU1接收到數(shù)據(jù)保存,并在顯示終端RX-VR和RX-TEMP位置分別顯示接收到的電壓值和溫度;當TX-1狀態(tài)顯示OFF時,發(fā)送停止.同樣方法MCU2發(fā)送數(shù)據(jù)到MCU3,MCU3在終端LCD上顯示接收到的數(shù)據(jù).
MCU3主要實現(xiàn)按鍵控制步進電機的正轉、反轉、轉速和停止,LCD顯示電機的開關狀態(tài)、左轉或右轉狀態(tài),顯示格式為MOTER:ON/OFF、L/R.MCU3按鍵控制步進電機開動狀態(tài)ON,運轉正常的情況下,向MCU1發(fā)送狀態(tài)數(shù)據(jù).當按鍵控制TX-1位置狀態(tài)顯示ON時,電機左轉,MCU1接收數(shù)據(jù)保存數(shù)據(jù),并顯示電機的狀態(tài)為L,電機右轉時,MCU1接收數(shù)據(jù),并顯示電機的狀態(tài)為R;當按鍵控制TX-1位置狀態(tài)顯示OFF時,停止發(fā)送數(shù)據(jù).同樣方法MCU3發(fā)送數(shù)據(jù)到MCU2,MCU2在終端LCD上顯示接收到的電機轉動狀態(tài).
4.2終端顯示界面
MCU1、MCU2、MCU3三個微控制器對應連接的LCD終端顯示界面如圖3所示.每個顯示界面中,首先顯示本MCU實現(xiàn)的對應功能,其次,方框內(nèi)顯示接收到其它MCU發(fā)送來的對應數(shù)據(jù)信息,最后是對其他MCU的發(fā)送狀態(tài)及選擇.
圖3 三個微控制器對應的LCD顯示界面
4.3控制通信實現(xiàn)
在通信前,三個串行接口的波特率都設置為9600 bps,分別將編寫好的程序燒寫到每個連接相應模塊的MCU中,然后進行相應操作來實現(xiàn)通信.通信過程中,每個微控制器連接的4*4矩陣鍵盤根據(jù)需要都設定好了相關的輸入和控制功能.上電后,MCU1首先通過設定鍵和數(shù)字鍵,設定一個時間并開始運行,打開發(fā)送鍵開始發(fā)送數(shù)據(jù),然后在MCU2或MCU3接收端通過鍵盤左右移動鍵選定MCU1,并打開數(shù)據(jù)接收,這時就能接收到發(fā)送過來的時間值,經(jīng)過比對,沒有時間延遲.經(jīng)過同樣實驗,MCU1和MCU3接收到MCU2發(fā)送的電壓值和溫度值,由于傳輸距離較短,沒有產(chǎn)生明顯誤差;MCU1和MCU2接收到MCU3發(fā)送的馬達轉動信息也都正常有效.
實驗證明,瑞薩微控制器之間的三方交互通信穩(wěn)定可靠,為單片機之間的相互協(xié)作通信和應用奠定了良好的基礎.
本文介紹了多個微控制器相互之間通信的方法,以三個獨立的瑞薩MCU為核心,分別外接各種傳感器、輸入設備和顯示終端,實現(xiàn)各自不同的功能.然后各單片機之間互為主從機,通過串口控制線實現(xiàn)兩兩之間的交互通信,最終實現(xiàn)三者之間相互傳輸接收數(shù)據(jù)和相互協(xié)商通信,并通過顯示終端對各控制器的收發(fā)數(shù)據(jù)信息和控制器的收發(fā)狀態(tài)進行直觀顯示,大大提高了單片機的利用效率和功能.
[1]牛國鋒.基于瑞薩MCU的溫度預警系統(tǒng)設計與實現(xiàn)[D].上海:華東理工大學,2013:1-5.
[2]付強生.基于瑞薩電子78KK0/Ix2系列MCU的智能照明設計[N].電子報,2011-11-27.
[3]呂瑞云.基于單片機的串行通信研究[J].電子世界,2012(13):76-77.
[4]張建華;劉玉玲;吳允志.基于單片機串行通信的LED點陣顯示系統(tǒng)的設計與實現(xiàn):以16×32LED點陣顯示器為例[J].數(shù)字技術與應用,2013(5).
[5]徐小濤.基于MCS-51單片機的串行通信實現(xiàn)[J].計算機與網(wǎng)絡,2010(19):51-54.
[6]程晨.Arduino電子設計實戰(zhàn)指南:零基礎篇[M].北京:機械工業(yè)出版社,2013:77-78.
[7]瑞薩科技公司.適用于微控制器的CubeSuite+集成型開發(fā)環(huán)境[J].電子制作,2011(7):5.
The Three-way Interaction Communication Based on Renesas MCU
ZHU Miaomiao,NIU Guofeng,ZHANG Mingxin
(School of Computerscience and Engineering,Changshu Institute of Technology,Changshu 215500,China)
Taking three microcontrollers of Renesas 78KOR as the core,external function modules use C language programming to achieve different functions.Then based on the principle ofserial communication design,a tripartite interaction between communication environments isset up.By controlling the different MCU tosend and receive data mutually,a reliable andstable data transmission function between Renesas controllers is realized,and through their respective LCD terminals,the receiving andsendingstate is displayed between MCU and each function module.The design of the three-way interaction communication has a low cost,a flexible,convenient and reliable data transmission and a higher practicability as well.
Renesas;MCU;three-way interaction;serial communication
TP368.1
A
1008-2794(2015)04-0089-04
2016-04-10
國家自然科學基金項目“基于視覺感興趣區(qū)域的協(xié)同圖像檢索研究”(61173130)
牛國鋒,實驗師,碩士,研究方向:嵌入式系統(tǒng)應用,無線傳感網(wǎng)技術,E-mail:ngf912@sina.com.