亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        C8051F120單片機串口擴展與通訊設(shè)計

        2013-04-23 01:28:40朱思榮周萬里畢春元趙曉華高廣恒劉仲匯
        山東科學(xué) 2013年1期
        關(guān)鍵詞:下位中斷串口

        朱思榮,周萬里,畢春元,趙曉華,高廣恒,劉仲匯

        (山東省科學(xué)院生物研究所,山東省生物傳感器重點實驗室,山東 濟南 250014)

        在工業(yè)控制系統(tǒng)中,串口通訊是最常用的多機通訊手段,特別是較長距離的信號傳輸,使用485總線的數(shù)據(jù)變送器較4~20mA摸擬信號傳輸抗干擾能力更好,精度更高,調(diào)試也更方便。但常用的單片機、DSP或PLC控制器串口通訊能力卻先天不足,通常只有一個串口,多的也只有2個,常需要對串口進行擴展才能滿足系統(tǒng)需求。在一款帶有生物傳感器檢測系統(tǒng)的發(fā)酵過程控制器的設(shè)計中,系統(tǒng)的2個空氣流量變送器、生物傳感器檢測系統(tǒng)、上位PC機通訊均使用485總線,彩色LCD顯示器的觸摸屏輸出也是串行信號。由于上位PC機通訊需要獨占一個串口,觸摸屏的突發(fā)通訊也不能與其它設(shè)備共用串口,生物傳感檢測系統(tǒng)和空氣流量計具有完全不同的通訊協(xié)議,所以系統(tǒng)需要進行串口擴展才能滿足設(shè)計需求。

        對于串口擴展,常用的方法有硬件擴展和軟件模擬。硬件擴展又分并口擴展和子串口擴展,如intel 8251用并口擴展1個全雙工串口,TL16C554用并口同時擴展4個全雙工串口,并口擴展需占用較多的端口資源和外部中斷;子串口擴展法則用1個高速串口擴展出多個低速子串口,如SP2338擴展3個子串口,SP2538和GM8125擴展5個子串口,子串口擴展電路簡單,也需要占用I/O端口資源控制串口切換,并在使用中有一定的條件限制。軟件模擬法通常采用定時器模擬,用查詢或中斷方式接收發(fā)送數(shù)據(jù),采用中斷方式接收數(shù)據(jù)起始位也要占用外部中斷[1-5]。

        在本系統(tǒng)設(shè)計中,使用Silicon Labs公司的C8051F120高速8位單片機[6]作為主控制器,單片機本身具有2個串口,再采用PCA模塊軟件模擬擴展法擴展1個串口,用單串口多路485總線擴展方法擴展3路485總線,成功解決了系統(tǒng)串口資源不足的問題。

        1 設(shè)計原理

        軟件模擬串口是根據(jù)串口接收和發(fā)送原理,通過定時控制在通用I/O口按位順序讀取或發(fā)送數(shù)據(jù)。通常用子程序接收或發(fā)送數(shù)據(jù)[7],也可通過中斷實現(xiàn),但需要占用一個外中斷和定時中斷[8],本項目中,利用C8051F120單片機的PCA模塊既可捕獲脈沖,又可作定時器使用的特點,只用PCA的1個模塊完成1個半雙工串口的模擬接收和發(fā)送。把PCA模塊設(shè)置為下降沿捕獲模式等待接收數(shù)據(jù),當(dāng)接收到起始位的下降沿信號,進入PCA模塊中斷,把PCA模塊改為定時器模式,并把定時時間設(shè)定到下一數(shù)據(jù)位的中間位置,以后每次到定時時間,讀取1位數(shù)據(jù),并預(yù)置下次定時時間,直到接收完一個字節(jié)。如要繼續(xù)接收數(shù)據(jù),再把PCA模塊設(shè)置為下降沿捕獲模式。發(fā)送數(shù)據(jù)在PCA模塊定時模式下進行,啟動發(fā)送時發(fā)送低電平起始位,預(yù)置PCA模塊定時時間,以后每次進入PCA模塊中斷發(fā)送1位數(shù)據(jù),都預(yù)置下次定時時間,直到發(fā)送完停止位。

        對于采用不同協(xié)議的下位機的數(shù)據(jù)通訊,如用1個串口進行順序通訊可用硬件進行通道切換[9]來實現(xiàn),本項目中因為下位機均為485總線,而MAX485[10]芯片的輸入和輸出可以單獨使用,采用直接控制方式可實現(xiàn)多個通道切換,當(dāng)前未通訊的下位機通過I/O端口禁止MAX485的輸入和輸出,使數(shù)據(jù)的發(fā)送或接收只針對指定的下位機。

        2 設(shè)計方案

        與PC機通訊以PC機作為上位機,本機作為下位機,使用1個獨立串口。與空氣流量變送器和生物傳感器檢測系統(tǒng)的通訊,使用1個獨立串口,本機作為上位機控制數(shù)據(jù)讀寫,空氣流量變送器和生物傳感器檢測系統(tǒng)作為下位機,構(gòu)成多機通訊系統(tǒng)。485總線本身是多機通訊總線,但在本系統(tǒng)中因為空氣流量變送器采用MODBUS工作協(xié)議,與生物傳感器檢測系統(tǒng)不一致,并且在與流量計的通訊中,主機應(yīng)答等待時間長達0.2 s以上,如采用單總線循環(huán)輪詢通訊,通訊的速度就比較慢。所以本設(shè)計為每個設(shè)備采用獨立的485接口,并在與流量計通訊等待應(yīng)答的時間內(nèi)插入與生物傳感器檢測系統(tǒng)的通訊,提高系統(tǒng)的通訊效率。系統(tǒng)與LCD觸摸屏的通訊采用PCA模塊0模擬,PCA模塊0的CEX0作為串口輸入,任選一I/O口作為串口輸出,本系統(tǒng)中因為觸摸屏不需要輸入信號,實際模擬串口只使用了接收功能。圖1為本設(shè)計的硬件接口圖,其中下位機485接口輸出端用3個1 kΩ電阻分壓為485總線提供一個基礎(chǔ)電平,防止本機讀數(shù)據(jù)時下位機還未切換到輸出狀態(tài),總線處于不確定狀態(tài)。

        3 模擬串口程序設(shè)計

        本系統(tǒng)用PCA模塊0模擬擴展1個半雙工串口,用于觸摸屏通訊,系統(tǒng)的數(shù)據(jù)接收和發(fā)送均采用中斷方式,除接收或發(fā)送1個數(shù)據(jù)中斷次數(shù)較多外,其它與系統(tǒng)硬件串口完全一樣。對于C8051F120這樣的高速處理器,收發(fā)1個數(shù)據(jù)位的中斷處理只需幾個微秒的時間,不會影響到系統(tǒng)其它任務(wù)的執(zhí)行,為保證數(shù)據(jù)收發(fā)定時準確,PCA中斷必須設(shè)為高級中斷,系統(tǒng)中其他高級中斷的處理時間不能超過模擬串口位發(fā)送間隔的1/3。

        圖1 發(fā)酵控制系統(tǒng)串行接口硬件電路Fig.1 Hardware circuit of serial interface of fermentation control system

        把PCA模塊0設(shè)為下降沿捕獲模式,即把模擬串口切換到接收起始位模式,在該模式下PCA模塊捕獲起始位下降沿脈沖信號開始1個字節(jié)的接收,數(shù)據(jù)接收和接收初始化均在PCA中斷進行。模擬串口的發(fā)送初始化需要發(fā)送起始位信號并初始化發(fā)送數(shù)據(jù),以“9600,N,8,1”模式串口通訊為例,發(fā)送初始化首先把PCA模塊0設(shè)為定時中斷模式,置發(fā)送端口為低電平發(fā)送起始位,設(shè)置捕獲寄存器值為當(dāng)前PCA計數(shù)器值+位接收延時(1/9600 s的PCA計數(shù)值),然后初始化發(fā)送數(shù)據(jù),把要發(fā)送的數(shù)據(jù)放入發(fā)送寄存器,并初始化發(fā)送中斷計數(shù)10,以處理包括起始位和停止位共10位數(shù)據(jù)的發(fā)送。

        串口數(shù)據(jù)的接收或發(fā)送在PCA中斷程序中執(zhí)行,PCA中斷程序流程如圖2所示。

        在捕獲起始位后,初始化延時為位接收延時的1.5倍,使串口數(shù)據(jù)的讀取時間位于該數(shù)據(jù)脈沖的中部位置,正好是數(shù)據(jù)最穩(wěn)定的時候,用以消除串口波特率偏移帶來的數(shù)據(jù)讀出錯誤。圖2流程中“字節(jié)接收處理”和“字節(jié)發(fā)送處理”同正常硬件串口的中斷處理程序。

        圖2 模擬串口PCA中斷處理程序流程Fig.2 Flow chart of PCA interruption process of analogue serial port

        4 多子機485數(shù)據(jù)通訊的處理

        本設(shè)計中,因為下位機485通訊接口是獨立的總線結(jié)構(gòu),每個總線的輸入和輸出均可以禁止,所以系統(tǒng)具有最大的靈活性,與下位機通訊可以采用不同的通訊協(xié)議和不同的通訊速率。與生物傳感器檢測系統(tǒng)的通訊為高速通訊,每秒與主機通訊4次,每次至少讀出一次狀態(tài)和即時數(shù)據(jù),如指令緩沖區(qū)有數(shù)據(jù),在完成讀出狀態(tài)和即時數(shù)據(jù)后再發(fā)送一條指令。與空氣流量計的通訊為低速通訊,每秒讀一次流量數(shù)據(jù)。本設(shè)計中與下位機的通訊由定時中斷啟動,每秒啟動2次,第1次啟動與流量計1的通訊,第2次啟動與流量計2的通訊,在發(fā)送流量計通訊連絡(luò)信號后,立即啟動一次與生物傳感器檢測系統(tǒng)的通訊,在完成與生物傳感器系統(tǒng)通訊后切換回流量計通訊,讀出流量的應(yīng)答信息,讀出流量的應(yīng)答后再啟動一次與生物傳感器系統(tǒng)的通訊。定時中斷同時處理子機通訊的超時,保證在某一子機通訊故障的情況下不會影響與其他子機的通訊,圖3為定時中斷對串口處理流程圖,圖4為定時中斷中串口超時處理方法。

        設(shè)備工作正常時,在串口發(fā)送或接收1個數(shù)據(jù)同時初始化系統(tǒng)的超時延時寄存器,所以不會產(chǎn)生串口通訊超時,定時中斷僅啟動與流量計1和2的通訊,與生物傳感器的通迅在串口中斷中啟動。圖5為串口1的通訊程序流程。如某個設(shè)備故障或未連接,則通訊在等待應(yīng)答過程就會超時,定時中斷的超時處理就終止該設(shè)備的通訊進程,啟動與下一設(shè)備的通訊或清除串口忙標志,使通訊循環(huán)正常進行。

        圖5 串口1多下位機通訊工作流程Fig.5 Flow chart of serial port communications with multiple lower computers

        5 結(jié)論

        PCA是8051單片機的常用功能模塊,一般的增強型8051單片機都帶PCA功能,通常每個PCA有3個以上的捕捉/比較模塊,按本設(shè)計方法,每個模塊均可擴展1個半雙工的串口,并且利用PCA擴展的串口。因為采用中斷方式,通訊時占用的CPU時間很少,占用的I/O端口也少,每個串口只需2個I/O口,如串口不需要發(fā)送,則只占1個I/O口,基本不影響系統(tǒng)的其它功能的執(zhí)行,用2個PCA模塊還可以實現(xiàn)全雙工串口,是比較理想的多串口擴展方案。用本方案擴展串口占用系統(tǒng)資源少,較硬件擴展法可降低產(chǎn)品成本,并提高系統(tǒng)的可靠性,特別是對有小型化要求的產(chǎn)品,縮小了線路板的面積,可使產(chǎn)品設(shè)計得更加小巧。

        對于485接口的下位機數(shù)據(jù)通訊,采用獨立總線的方法,雖然使用I/O端口較多,但可以把通訊協(xié)議完全不同的下位機連接在1個串口中,并根據(jù)實際需求合理調(diào)整不同子機的數(shù)據(jù)處理頻率,增加了系統(tǒng)應(yīng)用的靈活性,特別適合于從485總線數(shù)據(jù)變送器中讀出檢測數(shù)據(jù)。如本項目的空氣流量計,當(dāng)1個串口接8只流量計時,采用單總線讀出方式,由于變送器應(yīng)答等待時間長,4 s才輪詢一次,但使用多總線結(jié)構(gòu),可以通過定時發(fā)送指令的方式,先完成8個流量計的的數(shù)據(jù)讀出指令發(fā)送,再順序接收8個流量計的返回數(shù)據(jù),這樣每秒至少可以輪詢2次,提高了串口通訊效率。

        [1]景鑫.51單片機的串行口擴展方法[J].微計算機信息,2005,21(8-2):58-59.

        [2]鮑夢,劉智萍.51系列單片機的串口擴展方案[J].軟件導(dǎo)刊,2008,7(5):135-136.

        [3]戚建宇,何松.基于TL16C554的嵌入式系統(tǒng)的多串口擴展[J].計算機與信息技術(shù),2011(6):9-12.

        [4]孟濤,王福虎,陳森.微控制器的多串口擴展設(shè)計[J].艦船防化,2009(5):45-51.

        [5]錢震宇,肖昌漢.基于GM8125的單片機多串口通訊電路的設(shè)計與實現(xiàn)[J].船電技術(shù),2011,33(11):22-24.

        [6]Silicon Labs.C8051F120/1/2/3/4/5/6/7,C8051F130/1/2/3,Mixed signal ISP flash MCU family[EB/OL].[2012 - 05 - 06].http://www.silabs.com/Support%20Documents/TechnicalDocs/C8051F12x -13x.pdf.

        [7]李瑋,楊紅霞.基于51單片機的軟串口設(shè)計[J].安陽工學(xué)院學(xué)報,2011,10(4):32-33.

        [8]程頻,高偉.基于PIC單片機的軟串口的實現(xiàn)[J].計算機與數(shù)字工程,2005,33(10):150-153.

        [9]林志強.單片機多協(xié)議串行通信接口擴展技術(shù)[J].福建電腦2009,(9):40-41.

        [10]Maxim Intergrated.Low-Power,Slew-Rate-Limited RS-485/RS-422 Transceivers[EB/OL].[2012 - 05 - 06].http://datasheets.maxim-ic.com/en/ds/MAX1487-MAX491.pdf.

        猜你喜歡
        下位中斷串口
        淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
        發(fā)射機房監(jiān)控系統(tǒng)之下位機
        跟蹤導(dǎo)練(二)(5)
        千里移防,衛(wèi)勤保障不中斷
        解放軍健康(2017年5期)2017-08-01 06:27:44
        景洪電廠監(jiān)控系統(tǒng)下位機數(shù)據(jù)傳輸網(wǎng)絡(luò)改造
        圍觀黨“下位”,吐槽帝“登基”
        北京紀事(2016年5期)2016-05-07 13:17:02
        USB接口的多串口數(shù)據(jù)并行接收方法探索
        基于藍牙串口適配器的GPS接收機與AutoCAD的實時無線通信
        地礦測繪(2015年3期)2015-12-22 06:27:26
        CAN總線并發(fā)通信時下位機應(yīng)用軟件設(shè)計
        基于并行控制的FPGA多串口拓展實現(xiàn)
        亚洲欧美一区二区成人片| 亚洲日本人妻中文字幕| 亚洲综合精品一区二区三区| 亚洲成av人片极品少妇| 中文字幕 亚洲精品 第1页| 亚洲人成电影在线播放| 伊伊人成亚洲综合人网7777| 亚洲人妻中文字幕在线视频| 久久久国产熟女综合一区二区三区 | 韩国女主播一区二区三区在线观看| 精品乱色一区二区中文字幕| 日韩人妻少妇一区二区三区| 一个人看的视频www免费| 老熟妇Av| 综合人妻久久一区二区精品| 漂亮人妻被强了中文字幕| 久久亚洲精品成人av无码网站| 欧美日韩亚洲国产精品| 国产传媒在线视频| 亚洲中文字幕视频第一二区| 久久久久99精品成人片欧美| 国产精品无码午夜福利| 在线视频一区二区日韩国产| 一本色道久久综合亚州精品| 亚洲精选自偷拍一区二| 无码人妻人妻经典| 亚洲国产精品久久久久久久| 成人国产自拍在线播放| 给我看免费播放的视频在线观看| 日本熟日本熟妇中文在线观看| 真人二十三式性视频(动)| 亚洲免费不卡av网站| 人妖国产视频一区二区| 亚洲av无码久久| 丁香五月缴情综合网| 成人综合亚洲国产成人| 国语淫秽一区二区三区四区| 国产精品v片在线观看不卡| 国产无码swag专区| 日韩精品有码中文字幕| 国产激情视频免费在线观看|