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

        ?

        基于FPGA 與Modbus 的煙絲測(cè)速數(shù)據(jù)傳輸實(shí)現(xiàn)

        2020-03-24 03:49:32劉俊宇趙立宏

        劉俊宇,趙立宏

        (南華大學(xué) 機(jī)械工程學(xué)院,湖南 衡陽 421001)

        0 引言

        目前,卷煙廠所使用的卷煙機(jī)大多采用管道煙絲送料[1],卷煙機(jī)工作過程中,煙絲料全部由氣力輸送。當(dāng)卷煙機(jī)以每分鐘生產(chǎn)7 000 支或更高的生產(chǎn)速度工況下,送絲管內(nèi)風(fēng)速小于16 m/s,煙絲供應(yīng)不足;而當(dāng)管道內(nèi)風(fēng)速高于25 m/s 時(shí)又會(huì)造成煙絲質(zhì)量下降[2]。依據(jù)卷煙廠生產(chǎn)經(jīng)驗(yàn),當(dāng)煙絲速度控制在9-11 m/s 時(shí),既能保證卷煙機(jī)中煙絲給入量充足、不影響正常生產(chǎn),又能使管道內(nèi)大部分煙絲處于懸浮狀態(tài),最大程度減小了燥碎,提高了卷煙質(zhì)量。由于管道中煙絲速率較快,實(shí)現(xiàn)煙絲速度的實(shí)時(shí)監(jiān)測(cè)需要處理大量數(shù)據(jù),同時(shí)也對(duì)系統(tǒng)數(shù)據(jù)傳輸速率提出一定要求。因此該設(shè)計(jì)采用更大并行度的現(xiàn)場可編程邏輯門陣列(FPGA)作為控制核心,使用Modbus 協(xié)議為數(shù)據(jù)鏈路傳遞有效數(shù)據(jù),使其高效快速的將煙絲測(cè)速儀處理完的數(shù)據(jù)傳送到上位機(jī)和其它子模塊。

        1 Modbus 協(xié)議簡介

        Modbus 是1979 年由Modicon 公司發(fā)表的一種串行通信協(xié)議,由于其簡單、開放的特點(diǎn)已成為工業(yè)通信領(lǐng)域的行業(yè)標(biāo)準(zhǔn),在電子通信領(lǐng)域得到廣泛的應(yīng)用。Modbus 有RTU(Remote Terminal Unit)和ASCII 兩種模式,都是以幀報(bào)文的形式傳輸數(shù)據(jù)。但在同等情況下,RTU 模式比ASCII 模式的數(shù)據(jù)密度更大,更適合多字節(jié)數(shù)據(jù)的傳輸。RTU 模式下,一幀報(bào)文包括:地址碼、功能碼、數(shù)據(jù)和校驗(yàn)碼,見表1。由于每個(gè)數(shù)據(jù)都是16 進(jìn)制,因此在理論上,每個(gè)Modbus 網(wǎng)絡(luò)可以掛載255 個(gè)從機(jī)。不同的碼有著不同功能,如功能碼06 為預(yù)置單寄存器,功能碼16為預(yù)置多寄存器等。功能不同數(shù)據(jù)長度和結(jié)構(gòu)也有所不同,因此每幀報(bào)文發(fā)送完成后,間隔3.5 個(gè)字符時(shí)長,標(biāo)志著一幀報(bào)文的結(jié)束[3]。

        表1 Modbus 報(bào)文格式圖Tab.1 Modbus message format diagram

        2 硬件設(shè)計(jì)

        2.1 控制單元

        本次實(shí)驗(yàn)采用Altera 公司的MAX 10 FPGA,該芯片在眾多FPGA 中屬于低成本的一款,性價(jià)比較高,內(nèi)部嵌入豐富的存儲(chǔ)資源和乘法器資源,加上FPGA 本身并行度較高,足夠?qū)Ω咚龠\(yùn)動(dòng)的煙絲進(jìn)行采樣計(jì)算。并且該FPGA 內(nèi)部集成度比較高,集成了鎖相環(huán)(PLL)、RAM、PLD 邏輯等。特別是雙數(shù)模轉(zhuǎn)換(ADC)通道,能直接滿足數(shù)據(jù)采集要求,減少了硬件設(shè)計(jì)要求,簡化了設(shè)計(jì)流程,節(jié)約了時(shí)間成本。

        2.2 煙絲測(cè)速數(shù)據(jù)采集傳輸系統(tǒng)硬件構(gòu)成

        數(shù)據(jù)采集傳輸硬件系統(tǒng),由信號(hào)調(diào)理電路、FPGA、數(shù)模(DA)轉(zhuǎn)換模塊和顯示模塊組成。FPGA是整個(gè)電路的控制中心,負(fù)責(zé)連接控制各個(gè)硬件部分,并用算法實(shí)現(xiàn)對(duì)煙絲速度的求取。傳感器電信號(hào)經(jīng)信號(hào)調(diào)理電路處理后,由FPGA 集成的ADC 模塊讀取。數(shù)據(jù)傳輸硬件基于RS485 連接的通信鏈路,通過FPGA 分別將計(jì)算得到的煙絲速度和質(zhì)量系數(shù)通過Modbus 協(xié)議傳送到鏈路上的其它模塊。如顯示模塊,實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)狡渌刂颇K以及上位機(jī)的可視化。DA 模塊除了將接收到的數(shù)據(jù)轉(zhuǎn)換成模擬量外,還完成開關(guān)量的輸入讀取功能。根據(jù)開關(guān)量的通斷,提供DA 模塊是否正常運(yùn)行的標(biāo)志。數(shù)據(jù)采集傳輸系統(tǒng)的架構(gòu)如圖1 所示。

        圖1 數(shù)據(jù)采集傳輸系統(tǒng)硬件框圖Fig.1 Hardware block diagram of data acquisition and transmission system

        3 Modbus 通信部分模塊設(shè)計(jì)

        FPGA 遵從自上而下的設(shè)計(jì)原則,頂層模塊只進(jìn)行各個(gè)子模塊的例化和連接[4]。為節(jié)省資源和提升系統(tǒng)整體速度,采取完成一個(gè)數(shù)據(jù)的計(jì)算則發(fā)送一個(gè)數(shù)據(jù)的方式。Modbus 通信模塊連接如圖2所示。

        圖2 Modbus 通信部分功能模塊圖Fig.2 Modbus communication function module diagram

        3.1 發(fā)送/接收控制模塊

        該模塊主要功能是根據(jù)項(xiàng)目要求控制發(fā)送和接收??刂撇糠钟梢粋€(gè)狀態(tài)機(jī)組成,狀態(tài)機(jī)控制FPGA 從內(nèi)部數(shù)據(jù)寄存器內(nèi)讀取數(shù)據(jù),把數(shù)據(jù)按格式轉(zhuǎn)換成Modbus 協(xié)議所規(guī)定的報(bào)文形式,并存儲(chǔ)到該模塊的數(shù)據(jù)寄存器中。之后將報(bào)文發(fā)送到CRC 校驗(yàn)?zāi)K。驗(yàn)證正確后,給發(fā)送模塊發(fā)送報(bào)文,并且根據(jù)發(fā)送、接收等模塊返回的標(biāo)志位進(jìn)行狀態(tài)判斷,控制不同的狀態(tài)轉(zhuǎn)換,達(dá)到能夠按要求控制485 總線上數(shù)據(jù)發(fā)送和接收的目的。

        3.2 發(fā)送模塊

        發(fā)送模塊基于普通串口通信原理,將Modbus報(bào)文分成若干個(gè)字節(jié),每次需要發(fā)送10 位數(shù)據(jù),其中包括8 位有效數(shù)據(jù)、1 位起始位和1 位停止位[5]。主機(jī)上485 芯片DE 端電平上升沿,作為每個(gè)字符發(fā)送起始標(biāo)志(DE 端電位由FPGA 控制),采用定時(shí)計(jì)數(shù)器,當(dāng)數(shù)據(jù)發(fā)送到停止位正中時(shí),計(jì)時(shí)器停止計(jì)時(shí),并將該計(jì)時(shí)器停止標(biāo)志位作為一個(gè)字節(jié)數(shù)據(jù)發(fā)送完成標(biāo)志。一幀報(bào)文發(fā)送完成后,發(fā)送模塊會(huì)產(chǎn)生一個(gè)標(biāo)志位,并將該標(biāo)志位傳遞給發(fā)送/接收控制模塊。每幀報(bào)文起始位標(biāo)志的實(shí)現(xiàn)采用定時(shí)器判斷,保證每幀報(bào)文之間間隔不小于3.5 個(gè)字符時(shí)長。

        3.3 接收模塊

        接收模式中,485 芯片的DE 端必須拉低控制,為保證主機(jī)能夠接收到各從機(jī)返回?cái)?shù)據(jù),除發(fā)送模式外,其它時(shí)間將DE 端拉低,等待接收數(shù)據(jù)。檢測(cè)到串口有數(shù)據(jù)輸入時(shí),接收模塊接收一個(gè)字節(jié)有效數(shù)據(jù),并存入寄存器的高8 位,第二個(gè)字節(jié)存入寄存器的9-16 位,以此類推,直到一幀報(bào)文接收完畢。Modbus 每一幀報(bào)文都有固定的格式,如果格式位數(shù)與接收數(shù)據(jù)寄存器位數(shù)不匹配,或CRC 檢驗(yàn)?zāi)K發(fā)現(xiàn)數(shù)據(jù)不正確,則接收數(shù)據(jù)失敗,將丟棄該幀接收的報(bào)文。

        3.4 CRC 校驗(yàn)?zāi)K

        Modbus 通信協(xié)議報(bào)文最后兩個(gè)字符都由CRC校驗(yàn)碼組成。CRC 校驗(yàn)步驟如下:

        (1)定義一個(gè)16 位的CRC 寄存器,用于寄存CRC 校驗(yàn)碼,初始值為0XFFFF[6]。

        (2)將報(bào)文第一個(gè)字節(jié)的數(shù)值與CRC 寄存器中數(shù)據(jù)進(jìn)行異或,并將結(jié)果替換原CRC 寄存器中數(shù)據(jù)。

        (3)將CRC 寄存器中數(shù)據(jù)右移一位,高位補(bǔ)“0”,同時(shí)檢測(cè)移出位,如果為“0”,則重復(fù)該步驟,如果移出位為“1”,將CRC 寄存器數(shù)據(jù)與0XA001異或并將結(jié)果保存至CRC 寄存器中。重復(fù)移動(dòng)8次,便處理完一個(gè)字節(jié)數(shù)據(jù)。

        (4)按順序由高到低將報(bào)文中每一字節(jié)重復(fù)執(zhí)行步驟(2)、(3),直到報(bào)文數(shù)據(jù)全都處理完畢,最終CRC 寄存器中的值即為CRC 校驗(yàn)碼。

        4 測(cè)試與驗(yàn)證

        4.1 相關(guān)技術(shù)要求

        (1)提供4 路測(cè)速數(shù)據(jù)模擬量輸出。其分別為煙絲速度、質(zhì)量系數(shù)的電壓和電流模擬量。電流型模擬量數(shù)據(jù)輸出范圍4-20 mA,電壓型模擬量輸出直流0-10 V。測(cè)速過程中需保證模擬量輸出的連續(xù)性,且每兩個(gè)數(shù)據(jù)間隔不超過40 ms/次。

        (2)根據(jù)輸入信號(hào)(讀開關(guān)量)清零數(shù)據(jù)和保持?jǐn)?shù)據(jù)。提供24 V DC 開關(guān)量測(cè)速裝置的狀態(tài),指示模擬電壓、電流輸出是否正確。

        (3)提供一個(gè)實(shí)時(shí)測(cè)速顯示,至少達(dá)小數(shù)點(diǎn)后兩位。測(cè)速數(shù)據(jù)要求每秒鐘顯示10 個(gè)數(shù)據(jù)以上。

        4.2 系統(tǒng)調(diào)試

        該系統(tǒng)采用Mentor 公司的Modelsim 仿真軟件與FPGA 內(nèi)部的嵌入式邏輯分析儀(Signaltap)結(jié)合調(diào)試。由于煙絲速度值和質(zhì)量系數(shù)的模擬電壓、電流輸出是連續(xù)的,因此FPGA 主機(jī)必須連續(xù)不斷的向DA 模塊發(fā)送更新的報(bào)文,并且每幀報(bào)文間隔小于40 ms。

        在原有通信的前提下,調(diào)試的重點(diǎn)是提高數(shù)據(jù)更新速率。調(diào)試主要采用以下3 種方式:

        (1)提高波特率。提高波特率則能加快數(shù)據(jù)傳輸速率。1 個(gè)字節(jié)數(shù)據(jù)需要傳輸10 位數(shù)據(jù),當(dāng)波特率為9 600 bps 情況下,傳輸時(shí)間為:10×1/9 600,約1 ms。發(fā)送一幀8 字節(jié)的報(bào)文所需要的時(shí)間大約8.3 ms,將波特率提高到38 400 bps 后,發(fā)送8 字節(jié)報(bào)文所需時(shí)間小于2.1 ms。當(dāng)然,波特率并非越高越好,波特率越大傳輸數(shù)據(jù)準(zhǔn)確性越難以保證,最終通過調(diào)試采用波特率為38 400 bps。

        (2)合并報(bào)文發(fā)送。速度、質(zhì)量系數(shù)總共4 路模擬量輸出,一次寫一個(gè)寄存器,需要發(fā)送4 幀報(bào)文,每幀報(bào)文8 字節(jié),總共需要發(fā)送32 個(gè)字節(jié)。如果采用Modbus 功能碼10,一次直接向DA 模塊連續(xù)寫入四個(gè)寄存器的值,僅需17 個(gè)字節(jié),除去每幀報(bào)文之間的3.5 個(gè)字符的起始標(biāo)志時(shí)間,合并發(fā)送報(bào)文時(shí)間可縮減一半。

        (3)充分利用總線空閑。在保證模擬量連續(xù)發(fā)送情況下,可在向DA 模塊發(fā)送報(bào)文后,總線空閑的時(shí)間內(nèi)完成發(fā)送顯示報(bào)文、讀開關(guān)量輸入等操作??砂匆笤趦蓭瑢慏A 模塊內(nèi)寄存器的報(bào)文之間,插入一幀送顯示報(bào)文或者讀取開關(guān)量輸入。需要注意,在中間插入新的報(bào)文時(shí)要確保發(fā)送報(bào)文時(shí)間小于空閑時(shí)間,否則會(huì)影響模擬量輸出的連續(xù)性。Modelsim 部分波形仿真圖如圖3 所示。

        圖3 Modelsim 仿真圖Fig.3 Modelsim simulation diagram

        4.3 測(cè)試驗(yàn)證

        由于管道中煙絲運(yùn)動(dòng)速率是無規(guī)律的,測(cè)試中采用FPGA 計(jì)數(shù)器產(chǎn)生一組有規(guī)律的模擬數(shù)據(jù),將模擬數(shù)據(jù)寫入FPGA 的數(shù)據(jù)寄存器中,觀察儀器運(yùn)行狀況。通過485 轉(zhuǎn)USB 模塊,將485 總線上數(shù)據(jù)讀入PC 端,將接收到數(shù)據(jù)與發(fā)送數(shù)據(jù)進(jìn)行比對(duì),通過比對(duì)發(fā)現(xiàn)總線上與發(fā)送數(shù)據(jù)完全一致。串口調(diào)試工具讀取數(shù)據(jù)如圖4 所示。

        圖4 串口調(diào)試模塊讀取數(shù)據(jù)圖Fig.4 The serial debugging module read data graph

        測(cè)試過程中發(fā)現(xiàn),通過USB 將總線上數(shù)據(jù)讀出并未出現(xiàn)異常,用示波器觀察DA 模塊輸出模擬量數(shù)據(jù)也正常,但是現(xiàn)實(shí)模塊顯示數(shù)據(jù)有時(shí)出現(xiàn)異常。最終通過示波器觀察485 總線上A、B 的波形發(fā)現(xiàn),DA 模塊和顯示模塊在接收到一幀Modbus 的報(bào)文后,返回一幀報(bào)文,DA 模塊返回報(bào)文狀態(tài)如圖5 中“1”處所示。由于返回的一幀報(bào)文與發(fā)送報(bào)文在同一時(shí)刻占用485 總線,造成與顯示模塊通訊的偶然混亂,導(dǎo)致顯示異常。而USB 模塊掛載到485 總線上屬于從機(jī),只會(huì)接收主機(jī)發(fā)送的數(shù)據(jù),沒有檢測(cè)到其它模塊返回?cái)?shù)據(jù)。

        最終通過合理延時(shí),在DA 輸出合理空隙范圍內(nèi),將DA 模塊返回幀算入占用總線時(shí)長,錯(cuò)開返回幀與發(fā)送報(bào)文幀的時(shí)間,調(diào)整顯示數(shù)據(jù)報(bào)文發(fā)送時(shí)間,拉低顯示模塊485 發(fā)送數(shù)據(jù)使能端,讓顯示模塊僅處于接收狀態(tài)等方式,解決了顯示紊亂的問題。

        圖5 485 總線A、B 線波形圖Fig.5 A and B line waveform of 485 bus

        5 結(jié)束語

        該設(shè)計(jì)基于MAX 10 FPGA,通過Modbus 協(xié)議搭載RS485 芯片,采用主從通信的方式,將煙絲測(cè)速儀中煙絲的數(shù)據(jù)轉(zhuǎn)換成模擬量,同時(shí)在顯示模塊上顯示數(shù)字量。最終測(cè)試得出模擬量每35 ms 更新一次,顯示模塊顯示數(shù)據(jù)每秒鐘更新10 次,能夠準(zhǔn)確讀取提供的開關(guān)量,并做出相應(yīng)處理。目前該煙絲測(cè)速儀的樣機(jī)已經(jīng)設(shè)計(jì)完成,在風(fēng)力送絲機(jī)管道上,能夠在誤差允許范圍內(nèi),測(cè)量出管道中高速運(yùn)動(dòng)的煙絲,并將各接口數(shù)據(jù)傳遞到相應(yīng)的上位機(jī)控制系統(tǒng)中。

        久久久婷婷综合五月天| 成年av动漫网站18禁| 99精品国产在热久久无码| 国产精品51麻豆cm传媒| 人人妻人人澡人人爽精品欧美 | 97久久国产亚洲精品超碰热| 亚洲国产成人片在线观看| 曰批免费视频播放免费直播| 国产人妖视频一区二区| 97在线视频免费| 亚洲中文字幕黄色小视频| 91九色国产老熟女视频| 邻居少妇张开腿让我爽了一夜| 人妻少妇乱子伦精品无码专区电影| 女人被做到高潮免费视频| 国产精品久久中文字幕第一页| 综合久久青青草免费观看视频| 亚洲国产丝袜久久久精品一区二区| 国产精品久久久爽爽爽麻豆色哟哟| 久久99精品国产麻豆| 亚洲一区二区自拍偷拍| 国产午夜三级精品久久久| av在线播放男人天堂| 国产裸体xxxx视频在线播放| 欧美日韩国产专区| 中文字幕一区二区三区精品在线| 国产精品自产拍在线18禁 | 亚洲精品无码久久久影院相关影片 | 夜夜躁日日躁狠狠久久av| 无码吃奶揉捏奶头高潮视频| 国产爆乳乱码女大生Av| 久久成人黄色免费网站| 在线观看国产成人自拍视频| 天天躁日日躁狠狠久久| 国产人妖视频一区二区| 在线亚洲精品国产成人二区| 女同恋性吃奶舌吻完整版| 久久午夜无码鲁丝片午夜精品| 成人国产午夜在线视频| 久久精品韩国日本国产| 噜噜中文字幕一区二区|