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

        ?

        基于C8051F310的PCA模塊在Modbus通信網(wǎng)絡(luò)中的應(yīng)用

        2015-01-27 03:13:31王德志
        自動(dòng)化與儀表 2015年2期
        關(guān)鍵詞:計(jì)數(shù)器寄存器端口

        王德志

        (包頭職業(yè)技術(shù)學(xué)院 電氣工程系,包頭 014030)

        Modbus的分布式應(yīng)用及標(biāo)準(zhǔn)協(xié)議使得控制器之間、控制器與網(wǎng)絡(luò)和其它設(shè)備之間通訊成為可能。因此,不同廠(chǎng)家的控制或測(cè)量設(shè)備可以連成工業(yè)網(wǎng)絡(luò),進(jìn)行集中監(jiān)控或數(shù)據(jù)反饋。為了使終端設(shè)備具有更好的系統(tǒng)兼容性和市場(chǎng)競(jìng)爭(zhēng)力,監(jiān)測(cè)設(shè)備應(yīng)具有多種方便通訊的外部接口。模擬量信號(hào)如0~10 V,4~20 mA,數(shù)字量信號(hào)如脈沖頻率信號(hào)輸出接口應(yīng)用廣泛,而Modbus通訊協(xié)議及RS485接口作為分布式控制系統(tǒng)的通用標(biāo)準(zhǔn),可以進(jìn)一步滿(mǎn)足現(xiàn)代設(shè)備的智能化聯(lián)網(wǎng)要求。

        本文提出了一種脈沖頻率信號(hào)精確轉(zhuǎn)換為Modbus協(xié)議幀數(shù)據(jù)的方案,以具備脈沖輸出功能的磁漩渦流量計(jì)為實(shí)驗(yàn)載體,利用C8051F310中的PCA捕捉/比較模塊的邊沿觸發(fā)捕捉功能,計(jì)算出單位時(shí)間內(nèi)脈沖的個(gè)數(shù)和對(duì)應(yīng)的脈沖頻率,以RS485為電氣接口,Modbus ASCII碼為傳輸方式構(gòu)成工業(yè)網(wǎng)絡(luò)中的1個(gè)節(jié)點(diǎn)完成即時(shí)通訊。該方案增強(qiáng)了終端監(jiān)測(cè)設(shè)備的通用性和友好度,提高了系統(tǒng)整體的智能化監(jiān)測(cè)和控制水平。

        1 C8051F310中PCA定時(shí)器/計(jì)數(shù)器功能簡(jiǎn)介

        1.1 C8051F310 MCU

        C8051F31x系列器件使用Silicon Labs的專(zhuān)利CIP-51微控制器內(nèi)核。CIP-51與MCS-51TM指令集完全兼容,可以使用標(biāo)準(zhǔn)803x/805x的匯編器和編譯器進(jìn)行軟件開(kāi)發(fā)。CIP-51內(nèi)核具有標(biāo)準(zhǔn)8052的所有外設(shè)部件,包括4個(gè)通用的16位計(jì)數(shù)器/定時(shí)器、1個(gè)具有增強(qiáng)波特率配置的全雙工UART、1個(gè)增強(qiáng)型SPI端口、1280 B內(nèi)部RAM、128 B特殊功能寄存器(SFR)地址空間及29/25個(gè)I/O端口等,特殊功能可編程計(jì)數(shù)器/定時(shí)器陣列(PCA)具有5個(gè)捕捉/比較模塊和看門(mén)狗定時(shí)器功能。

        1.2 PCA定時(shí)器/計(jì)數(shù)器功能

        可編程計(jì)數(shù)器陣列(PCA)提供增強(qiáng)的定時(shí)器功能,與標(biāo)準(zhǔn)8051的計(jì)數(shù)器/定時(shí)器相比,它需要較少的CPU干預(yù)。PCA由1個(gè)專(zhuān)用的16位計(jì)數(shù)器/定時(shí)器和5個(gè)16位捕捉/比較模塊組成,捕捉/比較模塊有單獨(dú)的I/O線(xiàn)(CEXn),這些I/O線(xiàn)在被使能時(shí)通過(guò)交叉開(kāi)關(guān)連接到端口I/O。因此,較傳統(tǒng)的通過(guò)檢測(cè)I/0口高低電平的方式對(duì)外部輸入脈沖計(jì)數(shù),PCA計(jì)數(shù)器/定時(shí)器通過(guò)對(duì)輸入信號(hào)捕捉并進(jìn)入中斷的方式檢測(cè)脈沖信號(hào),可以獲得更高精度的檢測(cè)值。

        捕捉/比較模塊0的I/O線(xiàn)CEX0通過(guò)交叉開(kāi)關(guān)連接到端口I/O。因此,程序中設(shè)置端口I/O交叉開(kāi)關(guān)寄存器 1:XBR1 的位 6:XBARE=1,交叉開(kāi)關(guān)使能;位 2-0:PCA0ME=1,CEX0連接到端口引腳。為使CEX0連接到端口P1.0,須令端口0跳過(guò)寄存器P0SKIP=0xCF。由于P0.4,P0.5連接UART0的TX0和RX0,為防止URAT0功能關(guān)閉,P0.4,P0.5不能被交叉開(kāi)關(guān)跳過(guò)。利用Config2軟件對(duì)C8051F310的port I/O口進(jìn)行配置。

        16位的PCA計(jì)數(shù)器/定時(shí)器由2個(gè)8位的SFR組成:PCA0L和PCA0H。讀PCA0L時(shí),“瞬象寄存器”自動(dòng)鎖存PCA0H的值。由于讀PCA0H或PCA0L不影響計(jì)數(shù)器工作,保證讀操作不會(huì)造成對(duì)脈沖計(jì)數(shù)的延時(shí),進(jìn)一步保證檢測(cè)精度。置ECCF0位=1將允許模塊的CCF0中斷。本方案應(yīng)用捕捉/比較模塊0的正邊沿觸發(fā)捕捉模式。

        PCA的捕捉方式原理如圖1所示,PCA0捕捉/比較寄存器 PCA0CPM0的位 5:CAPP0=1,使能PCA0的正邊沿捕捉功能;位0:ECCF0=1,允許CCF0的捕捉/比較標(biāo)志中斷請(qǐng)求。因此,程序中設(shè)置PCA0CPM0=0x21。當(dāng)CEX0引腳上出現(xiàn)正邊沿跳變(從低電平到高電平跳變)時(shí),PCA捕捉PCA0L和PCA0H的值并將其裝入到對(duì)應(yīng)模塊的16位捕捉/比較寄存器(PCA0CPL0和PCA0CPH0)。捕捉發(fā)生時(shí),CCF0被置為邏輯‘1’并產(chǎn)生1個(gè)中斷請(qǐng)求,并在中斷服務(wù)程序中對(duì)CCF0位清0。幀的數(shù)據(jù)位中,完成數(shù)據(jù)的傳輸。

        圖1 PCA捕捉方式原理框圖Fig.1 Principle diagram for the captureway in PCA

        2 Modbus通訊協(xié)議應(yīng)用

        2.1 Modbus通訊協(xié)議層

        Modbus遵從主從控制策略,只有1個(gè)主機(jī),可支持多達(dá)247個(gè)遠(yuǎn)程從屬控制器或節(jié)點(diǎn)。此協(xié)議要求從機(jī)具備單獨(dú)的設(shè)備地址,可由主機(jī)巡測(cè)并實(shí)時(shí)回應(yīng)。Modbus協(xié)議幀數(shù)據(jù)包由地址碼、功能碼、數(shù)據(jù)位、校驗(yàn)位等組成。

        ASCII碼傳輸模式中每個(gè)ASCII碼字符都由1個(gè)16進(jìn)制字符組成。每個(gè)字節(jié)包括1個(gè)起始位,7個(gè)數(shù)據(jù)位,1個(gè)奇偶校驗(yàn)位(無(wú)校驗(yàn)則無(wú)),1個(gè)停止位和錯(cuò)誤檢測(cè)域。數(shù)據(jù)校驗(yàn)方式一般為CRC或LRC。

        Modbus支持多種電氣接口,如RS232、RS485等,其中RS485作為工業(yè)總線(xiàn)應(yīng)用更為廣泛。RS485二線(xiàn)制(AB)接法可實(shí)現(xiàn)多點(diǎn)雙向主從通信,總線(xiàn)可連接多達(dá)32個(gè)有效負(fù)載,特性阻抗為120 Ω,信號(hào)最大傳輸距離為1219 m,最大傳輸速率為10 Mb/s。基于RS485總線(xiàn)通信的穩(wěn)定性和現(xiàn)場(chǎng)布網(wǎng)方便等優(yōu)點(diǎn),被廣泛應(yīng)用于分布組網(wǎng)系統(tǒng)中。

        2.2 Modbus協(xié)議在接口數(shù)據(jù)傳輸中的應(yīng)用

        在C8051F310中開(kāi)啟PCA捕捉/比較模塊0的邊沿觸發(fā)捕捉功能,在E2PROM中更新CEX0端檢測(cè)到的單位時(shí)間內(nèi)脈沖個(gè)數(shù)值,結(jié)合頻率脈沖轉(zhuǎn)換算法,將計(jì)算得出的流量值信息打包儲(chǔ)存在Modbus

        3 Modbus通信基板電路硬件設(shè)計(jì)

        3.1 PCA捕捉外部脈沖信號(hào)接口電路

        信號(hào)捕捉電路采用光耦隔離的方式對(duì)輸入信號(hào)進(jìn)行處理。采用光耦傳輸?shù)膬?yōu)點(diǎn)是信號(hào)單向傳輸,輸入端與輸出端完全實(shí)現(xiàn)電氣隔離,輸出信號(hào)對(duì)輸入端無(wú)影響,抗干擾能力強(qiáng),無(wú)觸點(diǎn),傳輸效率高。此處應(yīng)用的TLP521光耦合器的主要作用是實(shí)現(xiàn)信號(hào)隔離和電平轉(zhuǎn)換。PCA捕捉外部信號(hào)的電路圖如圖2所示,PULSE為外部信號(hào)輸入接口,端口P1.0連接捕捉/比較模塊0的CEX0。

        圖2 PCA捕捉外部信號(hào)的電路圖Fig.2 PCA capture external signal circuit diagram

        3.2 隔離RS-485接口電路

        圖3 典型的UART0 RS232轉(zhuǎn)RS485通訊電路Fig.3 Typical communication circuit of UART0 RS232 turn to RS485

        如圖 3所示,C8051F310的 UART0串口的RXD,TXD通過(guò)光電隔離芯片HCPL0600連接半雙工SN65HVD3082E芯片的RO,DI引腳,控制信號(hào)RS485_0同樣經(jīng)光電隔離電路連接485芯片的DE和RE引腳。DE=RE=1時(shí),485芯片的發(fā)送器有效,接收器禁止;DE=RE=0時(shí),485芯片的接收器有效,發(fā)送器禁止。

        連接至A引腳的上拉電阻R22、連接至B引腳的下拉電阻R20用于保證無(wú)連接的485芯片處于空閑狀態(tài),提供網(wǎng)絡(luò)失效保護(hù),以提高RS485節(jié)點(diǎn)與網(wǎng)絡(luò)的可靠性。使用DC-DC隔離器件如MORNSUN公司的WRF0505S-1WR2可以產(chǎn)生1組與微處理器電路完全隔離的電源輸出,用于向RS485收發(fā)器電路提供+5 V電源。該隔離RS485接口電路實(shí)現(xiàn)了信號(hào)和電源的雙隔離,可廣泛應(yīng)用于煤礦井下防爆或本質(zhì)安全型產(chǎn)品中。

        3.3 C8051F310 UART0接口電路

        C8051F310的UART0接口電路通過(guò)設(shè)置端口I/O交叉開(kāi)關(guān)寄存器0:XBR0=0x01;使UART TX0、RX0連接到端口引腳的P0.4和P0.5。設(shè)置端口0輸出方式寄存器P0MDOUT=0x12;使TX0和P0.1端口為推挽方式輸出。

        4 軟件設(shè)計(jì)

        通信基板電路的軟件設(shè)計(jì)主要包括硬件初始化程序、脈沖頻率信號(hào)與Modbus協(xié)議幀數(shù)據(jù)轉(zhuǎn)換程序、脈沖頻率捕捉算法設(shè)計(jì)和RS485收發(fā)子程序等。

        4.1 主程序設(shè)計(jì)

        主程序流程圖如圖4所示,主要包括系統(tǒng)初始化函數(shù)、I/O端口初始化函數(shù)、UART0初始化函數(shù),以及PCA0脈沖檢測(cè)函數(shù)等。完成系統(tǒng)初始化掃描后,系統(tǒng)等待PCA0中斷觸發(fā)。當(dāng)檢測(cè)到外部脈沖信號(hào)時(shí),即跳入PCA0脈沖檢測(cè)與Modbus轉(zhuǎn)換子程序。

        圖4 主程序流程圖Fig.4 Flow chart of the main program

        4.2 PCA0脈沖檢測(cè)捕捉算法與Modbus轉(zhuǎn)換子程序

        PCA0初始化函數(shù)允許PCA0 CEX0口每次捕捉到正邊沿跳變時(shí)進(jìn)入捕捉中斷 (中斷標(biāo)志位CCF0),在中斷函數(shù)中,當(dāng)捕獲到程序設(shè)定的固定脈沖個(gè)數(shù)goal時(shí),記錄此時(shí)PCA0CPL0和PCA0CPH0的值。PCA0定時(shí)器時(shí)鐘f為系統(tǒng)時(shí)鐘12分頻:f=SYSCLK/12=3.0625 MHz/12,捕捉到第goal個(gè)正邊沿脈沖時(shí)tf的值:tf=SH×256+SL,則goal個(gè)正邊沿脈沖的總周期:T=tf/f,單個(gè)方波脈沖的周期:t=T/goal,方波脈沖的頻率F=1/t;程序表達(dá)如下:

        PCA0脈沖檢測(cè)與Modbus轉(zhuǎn)換流程圖如圖5所示。

        圖5 PCA0脈沖檢測(cè)與Modbus轉(zhuǎn)換流程圖Fig.5 Flow chart of PCA0 pulse detection and the Modbus conversion

        4.3 RS-485收發(fā)子程序

        Modbus協(xié)議幀數(shù)據(jù)以ASCII碼形式傳輸,應(yīng)答機(jī)制為主機(jī)發(fā)送后目標(biāo)接收器應(yīng)答。主機(jī)發(fā)送碼格式一般為:[從機(jī)地址][功能碼][n位數(shù)據(jù)][CRC校驗(yàn)]。該方案中,設(shè)置的主機(jī)發(fā)送碼格式為***ZSQ01回車(chē)。若從機(jī)地址對(duì)應(yīng),則從機(jī)01響應(yīng)主機(jī)巡測(cè),應(yīng)答碼為***SQ”流量值”回車(chē)。從機(jī)UART0中斷函數(shù)中響應(yīng)主機(jī)發(fā)送碼程序?yàn)?/p>

        485接收利用UART0中斷,在中斷程序內(nèi)讀取緩存區(qū)SBUF0中的值。RS485收發(fā)子程序流程圖如圖6所示。

        圖6 RS485收發(fā)子程序流程圖Fig.6 Flow chart of the RS485 transceiver subroutine

        5 信號(hào)轉(zhuǎn)換電路檢測(cè)數(shù)據(jù)實(shí)驗(yàn)驗(yàn)證結(jié)果

        現(xiàn)場(chǎng)安裝的被測(cè)流量計(jì)的管徑為DN25,儀表系數(shù)為160。實(shí)驗(yàn)過(guò)程中記錄的3組數(shù)據(jù)如表1、表2和表3所示。

        表1 流量計(jì)實(shí)驗(yàn)數(shù)據(jù)組1Tab.1 Experimental data of flow meter as group 1

        表2 流量計(jì)實(shí)驗(yàn)數(shù)據(jù)組2Tab.2 Experimental data of flow meter as group 2

        表3 流量計(jì)實(shí)驗(yàn)數(shù)據(jù)組3Tab.3 Experimental data of flow meter as group 3

        由以上3組數(shù)據(jù)可以看出,Modbus通信基板檢測(cè)到的流量計(jì)脈沖頻率與流量計(jì)實(shí)際輸出的脈沖頻率間的誤差在實(shí)際應(yīng)用要求的范圍之內(nèi)。

        6 結(jié)語(yǔ)

        基于C8051F310中PCA0計(jì)數(shù)器/定時(shí)器功能的Modbus協(xié)議幀數(shù)據(jù)轉(zhuǎn)換已經(jīng)成功應(yīng)用在磁漩渦流量計(jì)通信基板電路中。通過(guò)硬件設(shè)計(jì)和軟件編程,實(shí)現(xiàn)了脈沖頻率信號(hào)向RS485信號(hào)精確的數(shù)據(jù)傳輸,并完成與主機(jī)系統(tǒng)聯(lián)網(wǎng)穩(wěn)定通訊。該方案在一定程度上提高了終端設(shè)備的智能化水平和組網(wǎng)能力。

        [1]新華龍公司.C8051F310/1/2/3/4/5/8/16 KB ISP FLASH微控制器數(shù)據(jù)手冊(cè)[M].2004:167-177.

        [2]江賢志,劉華章,張教育,等.基于C8051F020單片機(jī)的RS485串行通信設(shè)計(jì)[J].電子測(cè)量技術(shù),2014,3(1):24-28.

        [3]王永力,任開(kāi)春,何春晗.基于C8051F060單片機(jī)的CAN/RS485轉(zhuǎn)換器的設(shè)計(jì)與實(shí)現(xiàn)[J].工業(yè)控制計(jì)算機(jī),2009,9(1):47-49.

        [4] 劉曉峰,耿蒲龍.基于C8051F040單片機(jī)的CAN/RS-485轉(zhuǎn)換模塊設(shè)計(jì)[J].科學(xué)之友,2012,5(2):29-33.

        [5]沈金鑫,夏靜.基于C8051F350的多路高精度數(shù)據(jù)采集系統(tǒng)及應(yīng)用[J].電子設(shè)計(jì)工程,2014,5(1):26-28.

        [6]寧占彬,曾新順.基于STM32F050的RS485數(shù)據(jù)轉(zhuǎn)發(fā)器設(shè)計(jì)[J].電腦編程技巧與維護(hù),2013,14(4):35-37.

        猜你喜歡
        計(jì)數(shù)器寄存器端口
        煤氣與熱力(2022年2期)2022-03-09 06:29:30
        一種端口故障的解決方案
        Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
        端口阻塞與優(yōu)先級(jí)
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        計(jì)數(shù)器競(jìng)爭(zhēng)冒險(xiǎn)及其處理的仿真分析
        初識(shí)電腦端口
        電腦迷(2015年6期)2015-05-30 08:52:42
        生成樹(shù)協(xié)議實(shí)例探討
        任意N進(jìn)制計(jì)數(shù)器的設(shè)計(jì)方法
        河南科技(2014年10期)2014-02-27 14:09:30
        基于單片機(jī)的仰臥起坐計(jì)數(shù)器
        日本丰满熟妇videossexhd| 国产成人综合亚洲国产| 伊人久久大香线蕉在观看| 扒开非洲女人大荫蒂视频| 国产av大片久久中文字幕| 毛片成人18毛片免费看| 欧美黑人又粗又大xxxx| 精品无码国产自产野外拍在线| 吸咬奶头狂揉60分钟视频| 欧美日本道免费二区三区| 国内精品女同一区二区三区| 欧美又大粗又爽又黄大片视频| 99精品国产一区二区三区| 国产一精品一av一免费| 欧美日韩国产码高清综合人成| 国产女人的高潮国语对白| 亚洲最大中文字幕无码网站 | 欧美性猛交xxxx免费看蜜桃| 国产永久免费高清在线| 无遮挡亲胸捏胸免费视频| 国产精品27页| 国产精品自拍视频免费观看| 亚洲国产性夜夜综合另类| 日韩精品久久久肉伦网站| 蜜臀aⅴ国产精品久久久国产老师 国产精品久久婷婷六月丁香 | 亚洲国产最新免费av| 亚洲最好看的中文字幕| 大学生高潮无套内谢视频| 无码av免费一区二区三区试看| 吃奶摸下的激烈视频| 亚洲色偷偷综合亚洲AVYP| 中文字幕久久精品一区二区| 日韩日韩日韩日韩日韩| 精品人妻va出轨中文字幕| 男女好痛好深好爽视频一区| 日本一区二区在线看看| 久久国产精品一区二区三区| 综合无码一区二区三区 | 久久狠狠高潮亚洲精品暴力打| 国产高清黄色在线观看91| 人妻少妇猛烈井进入中文字幕 |