999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

C8051F120單片機(jī)串口擴(kuò)展與通訊設(shè)計(jì)

2013-04-23 01:28:40朱思榮周萬(wàn)里畢春元趙曉華高廣恒劉仲匯
山東科學(xué) 2013年1期
關(guān)鍵詞:單片機(jī)系統(tǒng)

朱思榮,周萬(wàn)里,畢春元,趙曉華,高廣恒,劉仲匯

(山東省科學(xué)院生物研究所,山東省生物傳感器重點(diǎn)實(shí)驗(yàn)室,山東 濟(jì)南 250014)

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

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

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

1 設(shè)計(jì)原理

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

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

2 設(shè)計(jì)方案

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

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

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

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

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

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

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

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

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

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

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

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

5 結(jié)論

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

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

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

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

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

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

[5]錢震宇,肖昌漢.基于GM8125的單片機(jī)多串口通訊電路的設(shè)計(jì)與實(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單片機(jī)的軟串口設(shè)計(jì)[J].安陽(yáng)工學(xué)院學(xué)報(bào),2011,10(4):32-33.

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

[9]林志強(qiáng).單片機(jī)多協(xié)議串行通信接口擴(kuò)展技術(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.

猜你喜歡
單片機(jī)系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機(jī)系統(tǒng)
ZC系列無人機(jī)遙感系統(tǒng)
基于單片機(jī)的SPWM控制逆變器的設(shè)計(jì)與實(shí)現(xiàn)
電子制作(2019年13期)2020-01-14 03:15:28
基于PowerPC+FPGA顯示系統(tǒng)
基于單片機(jī)的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機(jī)的便捷式LCF測(cè)量?jī)x
電子制作(2019年9期)2019-05-30 09:42:02
半沸制皂系統(tǒng)(下)
小議PLC與單片機(jī)之間的串行通信及應(yīng)用
電子制作(2018年12期)2018-08-01 00:48:04
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
主站蜘蛛池模板: 成人午夜天| 91色在线观看| 国产精品自在自线免费观看| 亚洲成网站| 国产精品性| 国产正在播放| 亚洲伦理一区二区| 亚洲二区视频| 最新日韩AV网址在线观看| 在线观看无码a∨| 午夜国产在线观看| 在线免费看片a| 91在线免费公开视频| 精品久久国产综合精麻豆| 亚洲天堂日本| 亚洲AV无码乱码在线观看代蜜桃| 亚洲国产精品无码久久一线| 亚洲狠狠婷婷综合久久久久| 国产va在线观看免费| 精品第一国产综合精品Aⅴ| 亚洲第一页在线观看| 亚洲福利网址| 国产精彩视频在线观看| 国产区免费| 欧美一级在线播放| 狠狠干综合| 97在线国产视频| 国产真实乱人视频| 福利视频久久| 美女免费精品高清毛片在线视| 久久免费视频6| 尤物国产在线| 欧美日本不卡| 亚洲人成影院在线观看| 国产成人精品视频一区视频二区| 国语少妇高潮| 无码久看视频| 国产99视频精品免费视频7| 亚洲精品无码久久久久苍井空| 精品人妻AV区| 在线欧美一区| 国产在线精彩视频二区| 亚洲综合天堂网| hezyo加勒比一区二区三区| 99偷拍视频精品一区二区| 欧美一区二区丝袜高跟鞋| 国产成人高精品免费视频| 亚洲国产91人成在线| 国产成人无码AV在线播放动漫 | 国产精品大白天新婚身材| 国产精品三区四区| 国产精品女主播| 天堂亚洲网| 黄色一级视频欧美| 最新国产高清在线| 国产精品白浆无码流出在线看| 久久九九热视频| 亚洲综合色婷婷| 亚洲人成网站日本片| 欧美伦理一区| 波多野吉衣一区二区三区av| 亚洲制服丝袜第一页| 99热国产这里只有精品9九 | 福利国产在线| 有专无码视频| 久久久久中文字幕精品视频| 欧美激情二区三区| 亚洲区一区| 制服无码网站| 国产精品lululu在线观看| 激情综合五月网| 五月综合色婷婷| 国产亚洲成AⅤ人片在线观看| 亚洲天堂日韩av电影| 亚洲国产精品一区二区第一页免 | 91一级片| 久久国产成人精品国产成人亚洲| 综合社区亚洲熟妇p| 91久久偷偷做嫩草影院电| 久久77777| 精品一区二区三区水蜜桃| av尤物免费在线观看|