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

        ?

        基于FPGA的水質(zhì)監(jiān)測平臺通信協(xié)議設(shè)計*

        2019-05-07 11:45:00徐華龍衷衛(wèi)聲
        傳感器與微系統(tǒng) 2019年5期
        關(guān)鍵詞:圖表水質(zhì)數(shù)據(jù)庫

        徐華龍, 衷衛(wèi)聲

        (南昌大學 信息工程學院,江西 南昌 330031)

        0 引 言

        自工業(yè)4.0概念被提出以來,各個行業(yè)都開始進入互聯(lián)領(lǐng)域網(wǎng)+制造的智能時代,在水質(zhì)監(jiān)測領(lǐng)域,除了成熟的可編程邏輯控制器(programmable logic controller,PLC)+組態(tài)的工控模式外,越來越多的嵌入式及互聯(lián)網(wǎng)元素也開始慢慢加入進來[1,2]。其中現(xiàn)場可編程門陣列(field programmable gate array,FPGA)以其豐富的邏輯單元在數(shù)字系統(tǒng)設(shè)計領(lǐng)域得到越來越廣泛的運用[3,4]。

        本文設(shè)計一種水質(zhì)監(jiān)測平臺,通過對相關(guān)技術(shù)單元的設(shè)計分析尤其是平臺中數(shù)據(jù)通信協(xié)議的設(shè)計與實現(xiàn),提出一種FPGA+云端+Android的水質(zhì)監(jiān)測平臺解決方案。

        1 平臺總體框架設(shè)計

        平臺水質(zhì)分析儀表采用支持RS—232/RS—485接口的SJG—705多參數(shù)監(jiān)測儀,平臺總體框架如圖1所示。

        圖1 平臺總體框架設(shè)計

        取配水單元將水樣無二次污染的送入預處理單元。預處理完成如沉沙等去除其他影響因素操作[5]。數(shù)據(jù)由分析儀表檢測并通過Modbus協(xié)議傳送至以FPGA芯片作為主控的數(shù)據(jù)采集模塊。通用分組無線業(yè)務(general packet radio service,GPRS)模塊則將數(shù)據(jù)發(fā)送至本地服務器,服務器與GPRS模塊通過Socket連接,創(chuàng)建云端數(shù)據(jù)庫,并將數(shù)據(jù)上傳,通過JDBC(Java DataBase Connectivity)完成Android對云端數(shù)據(jù)的讀取。為了在移動端直觀顯示數(shù)據(jù),對MPAndroidChart圖表庫進行開發(fā),以數(shù)據(jù)曲線動圖的形式完成遠程顯示。其中,數(shù)據(jù)的采集與傳輸為平臺的一大重點,本文主要對數(shù)據(jù)傳輸過程中的Modbus協(xié)議的FPGA實現(xiàn)及傳輸控制協(xié)議/因特網(wǎng)互聯(lián)協(xié)議(transmission control protocol/Internet protocol,TCP/IP)的Socket網(wǎng)絡編程的設(shè)計實現(xiàn)進行詳細開發(fā)介紹,其他模塊主要對其技術(shù)要點進行陳述并完成最后的聯(lián)調(diào)顯示。

        2 Modbus協(xié)議[6]的設(shè)計與實現(xiàn)

        Modbus數(shù)據(jù)幀格式如下:開始位為T1~T4,從機地址為8 bit,功能碼為8 bit,數(shù)據(jù)為N×8 bit,CRC校驗為16 bit,結(jié)束位為T1~T4。

        Modbus可采取美國標準信息交換代碼(American Standard Code for Information Interchange)ASCII及遠程終端單元(remote terminal unit,RTU)兩種通信模式進行通信,兩種方法各有優(yōu)點,ASCII模式具有數(shù)據(jù)傳輸間隔時間長、更穩(wěn)定的優(yōu)點,而RTU模式具有更長的通信距離、更高的數(shù)據(jù)傳輸速度及數(shù)據(jù)吞吐率,平臺采取默認下的RTU模式。在RTU模式下,Modbus每一幀數(shù)據(jù)的開始及結(jié)束都需要包含3.5個字符靜止時間,從機地址為同一網(wǎng)絡中所能承受的最大從機數(shù)為247個,在工程中一般不超過32,功能碼用于異步應答,而循環(huán)冗余校驗碼(cyclic redundancy check,CRC)校驗則一般為CRC16[7,8]。

        根據(jù)FPGA的自頂向下的模塊化的設(shè)計思想,將Modbus協(xié)議分為波特率發(fā)生器模塊、數(shù)據(jù)接收模塊、數(shù)據(jù)接收緩存器模塊、數(shù)據(jù)發(fā)送模塊、數(shù)據(jù)發(fā)送緩存器模塊及CRC校驗模塊,結(jié)構(gòu)框圖如圖2所示。

        圖2 Modbus模塊結(jié)構(gòu)框圖

        2.1 波特率發(fā)生器與Modbus接收模塊設(shè)計

        波特率發(fā)生器的實現(xiàn)本質(zhì)上為硬件描述語言Verilog的分頻計數(shù)器的實現(xiàn),平臺采用的FPGA主控芯片為Altera公司Cyclone IV系列EP4CE10F17C8N,采用晶振為50 MHz,波特率采用19 200 bit/s級別,所對應的半周期計數(shù)值為1302。

        接收模塊主要由三部分組成:數(shù)據(jù)檢測模塊、串并轉(zhuǎn)換模塊及數(shù)據(jù)緩存模塊。結(jié)構(gòu)框圖如圖3所示[4]。

        圖3 Modbus接收模塊結(jié)構(gòu)

        數(shù)據(jù)檢測模塊主要功能為檢測數(shù)據(jù)幀是否有3.5個字符間隔,若檢測成功,則開始信號標志位置1,當又再次檢測成功時,數(shù)據(jù)幀結(jié)束。串并轉(zhuǎn)換模塊對接收串口的串行數(shù)據(jù)進行接收,將其轉(zhuǎn)換為8位并行數(shù)據(jù),并發(fā)送至數(shù)據(jù)緩存模塊。數(shù)據(jù)緩存格式為從機地址+功能碼+數(shù)據(jù)信息,且其中并不包含校驗碼。

        2.2 發(fā)送模塊設(shè)計

        發(fā)送模塊主要有分頻器模塊、并串轉(zhuǎn)換模塊及取數(shù)模塊組成。分頻器模塊控制數(shù)據(jù)發(fā)送速率,取數(shù)模塊則通過接收來自控制器指令從緩存中取出數(shù)據(jù)發(fā)送至并串轉(zhuǎn)換模塊,每執(zhí)行一次取數(shù)操作則進行一次讀取字節(jié)數(shù)與數(shù)據(jù)長度寄存器值得對比:若相等,取出校驗碼;若不相等,則繼續(xù)讀取。并串轉(zhuǎn)換模塊作用為串并的逆過程。

        2.3 CRC校驗模塊

        平臺采用循環(huán)冗余校驗法,將CRC寄存器16位全部置1,對數(shù)據(jù)幀中的從機地址、功能碼及有效數(shù)據(jù)進行校驗運算。運算過程為將第一個被校驗字節(jié)與CRC寄存器低字節(jié)進行異或運算,向最低位進行移位操作,檢查最低位值,若為1,則與寄存器進行運算,為0則不運算,移位8次后,進行下一個字節(jié)的運算,當整個數(shù)據(jù)幀校驗完畢后,寄存器的值即為校驗碼。

        2.4 Modbus仿真

        采用Verilog硬件描述語言對模塊邏輯功能進行設(shè)計,對各個模塊分別進行文本testbench測試,模塊在modelsim中的部分仿真結(jié)果如圖4所示。在串并轉(zhuǎn)換模塊中,因為Modbus先接收低位的特性,所以,輸出端數(shù)據(jù)有效數(shù)據(jù)與輸入端相反。

        圖4 仿真結(jié)果

        3 TCP/IP協(xié)議的Socket編程實現(xiàn)

        TCP/IP網(wǎng)絡中傳輸層具有TCP及用戶數(shù)據(jù)報協(xié)議(user datagram protocol,UDP)[8],結(jié)合平臺對數(shù)據(jù)的要求,采用GPRS模塊實現(xiàn)硬件模塊與本地服務器的通信。

        平臺采用的SIM900A模塊,其內(nèi)嵌TCP/IP,且信號質(zhì)量及處理能力較好的特點在市場上應用極為廣泛[9]。在對模塊進行參數(shù)設(shè)置時,利用花生殼獲取域名,將本地內(nèi)網(wǎng)IP及端口映射到外網(wǎng),編寫Socket程序,實現(xiàn)無線連接[10]。程序流程及相關(guān)應用程序編程接口(application programming interface,API)如圖5所示。

        圖5 Socket連接流程

        使用軟件VS2010完成本地服務器端的編寫獲取硬件模塊數(shù)據(jù),在購買的阿里云服務器上創(chuàng)建Sqlserver數(shù)據(jù)庫[11],開啟遠程連接接口,配置數(shù)據(jù)源等相關(guān)信息,在C環(huán)境下采用開放數(shù)據(jù)庫互連(open database connectivity,ODBC),在本地完成對數(shù)據(jù)庫的連接并添加數(shù)據(jù)。

        4 移動端設(shè)計要點

        平臺中移動客戶主要功能為完成對云端數(shù)據(jù)庫的連接及對檢測數(shù)據(jù)進行動態(tài)曲線顯示,同時在移動端建立本地SQLite數(shù)據(jù)庫,對獲取的數(shù)據(jù)進行備份管理。軟件開發(fā)環(huán)境為Eclipse[12]。設(shè)計模塊包含用戶界面(user interface,UI)設(shè)計模塊:各界面顯示的搭建;用戶登入模塊:完成用戶注冊、登入操作,確定用戶操作權(quán)限;往期列表顯示模塊:對不同時間段內(nèi)水質(zhì)信息進行列表管理,用戶可進行點擊查看具體參數(shù);數(shù)據(jù)連接及解析模塊:完成移動端對數(shù)據(jù)庫的連接及數(shù)據(jù)的讀取解析;曲線圖表的設(shè)計模塊:完成對數(shù)據(jù)曲線動圖的顯示操作;此外還包含軟件管理如版本、更新等相關(guān)模塊。

        在移動客戶端連接數(shù)據(jù)庫有多種方式,平臺采用JDBC的方式對數(shù)據(jù)庫進行連接。在連接數(shù)據(jù)庫前必須加載數(shù)據(jù)庫驅(qū)動,實現(xiàn)方法為Class.forName("com.microsoft.SQL-server.jdbc.SQLServerDriver"),通過數(shù)據(jù)庫統(tǒng)一資源定位器(uniform resoure locator,URL)地址,用戶,密碼,利用驅(qū)動類DriverManager完成連接,創(chuàng)建Statement對象,將SQL語句發(fā)送至數(shù)據(jù)庫管理系統(tǒng),完成對數(shù)據(jù)的操作[13]。

        為完成移動端對圖表的顯示,對開源圖表庫MPAndroidChart進行開發(fā),MPAndroidChart支持各類圖表及縮放、局部放大、移動和動畫等功能。平臺中測量參數(shù)包含溶解氧、pH值等。以此兩個參數(shù)變化過程進行曲線設(shè)計。在工程中添加MPAndroidChartLibrary—2—2—4.jar包至libs目錄下完成對圖表的支持,在布局文件Layout中添加曲線基本布局:

        Android:id="@+id/chart"

        Android:layout_width="match_parent"

        Android:layout_height="match_parent"/>

        在主界面中完成曲線圖格式設(shè)置、數(shù)據(jù)讀取及相關(guān)邏輯功能。包含圖表對象格式、坐標軸相關(guān)格式、限制線格式、曲線格式、曲線數(shù)據(jù)的獲取與集合等[14]。對于曲線數(shù)據(jù)的描繪,其主要邏輯為創(chuàng)建數(shù)據(jù)集合,通過add()方法對數(shù)據(jù)進行添加,創(chuàng)建LineDataSet對象描述曲線,創(chuàng)建LineDataSet集合,添加創(chuàng)建的LineDataSet對象,創(chuàng)建LineData對象描述圖表數(shù)據(jù)集合,最后將LineData對象導入獲取的圖表資源中。二參數(shù)曲線如圖6所示。

        圖6 二參數(shù)曲線變化

        在平臺中,監(jiān)測數(shù)據(jù)上報頻率為1次/5 min,為直觀顯示,在二參數(shù)的變化數(shù)據(jù)中選取9個在圖6中顯示,完成圖中的數(shù)據(jù)標記。圖中曲線動畫顯示方式為沿X軸正方向持續(xù)描繪,方法為animateX(),通過數(shù)據(jù)變化曲線在移動端的顯示,有利于用戶對水質(zhì)數(shù)據(jù)變化趨勢的了解。

        5 結(jié)束語

        本文設(shè)計一種基于FPGA的水質(zhì)監(jiān)測平臺,研究總線式通信協(xié)議Modbus及TCP/IP的實現(xiàn),利用Verilog編程語言及相關(guān)工具完成Modbus各模塊功能仿真,在C語言環(huán)境下對Socket網(wǎng)絡編程進行實現(xiàn),同時對移動端及云端設(shè)計要點進行設(shè)計,經(jīng)聯(lián)合調(diào)試,各模塊工作狀態(tài)良好,界面顯示及數(shù)據(jù)庫運行無誤。對未來水質(zhì)監(jiān)測領(lǐng)域的無人值守、水質(zhì)信息的多方共享技術(shù)有一定幫助。

        猜你喜歡
        圖表水質(zhì)數(shù)據(jù)庫
        水質(zhì)抽檢豈容造假
        環(huán)境(2023年5期)2023-06-30 01:20:01
        一月冬棚養(yǎng)蝦常見水質(zhì)渾濁,要如何解決?這9大原因及處理方法你要知曉
        數(shù)據(jù)庫
        財經(jīng)(2017年2期)2017-03-10 14:35:35
        雙周圖表
        足球周刊(2016年14期)2016-11-02 10:54:56
        雙周圖表
        足球周刊(2016年10期)2016-10-08 18:30:55
        圖表
        世界博覽(2016年16期)2016-09-27 18:25:26
        數(shù)據(jù)庫
        財經(jīng)(2016年15期)2016-06-03 07:38:02
        數(shù)據(jù)庫
        財經(jīng)(2016年3期)2016-03-07 07:44:46
        數(shù)據(jù)庫
        財經(jīng)(2016年6期)2016-02-24 07:41:51
        水質(zhì)總磷測定存在的問題初探
        河南科技(2014年23期)2014-02-27 14:19:07
        精品蜜桃av一区二区三区| 一本一道久久综合狠狠老| 久久天天躁夜夜躁狠狠躁2022 | 久久久久久成人毛片免费看| 国产精品原创av片国产日韩| 91国内偷拍一区二区三区| 亚洲国产色一区二区三区| 国产午夜精品一区二区三区嫩草| 亚洲熟伦熟女新五十路熟妇| 亚洲成av人在线观看无堂无码| 亚洲人av毛片一区二区| 国产tv不卡免费在线观看| 亚洲日韩av无码一区二区三区人| 亚洲精品久久久久久久久av无码| 免费一级特黄欧美大片久久网| 99久久久无码国产精品动漫| 国产高清在线精品一区不卡| 亚洲色偷偷偷综合网| 男人边吃奶边做好爽免费视频| 国产激情久久99久久| 日本高清一区在线你懂得| 亚洲精品无码不卡| 亚洲自偷自拍熟女另类| 久久99久久99精品免观看女同| 久久2020精品免费网站| 人成午夜大片免费视频77777| 国产精品久久久久久婷婷| 综合无码一区二区三区四区五区| 久久精品国产亚洲av热明星| 91精品国产综合久久久蜜| 亚洲av日韩av天堂一区二区三区 | 久久精品国产亚洲av网在| 日韩精品无码一区二区三区四区| 久久久久国产一区二区| 纯肉无遮挡H肉动漫在线观看国产| 女优免费中文字幕在线| 国产亚洲一区二区三区综合片| 精品伊人久久大香线蕉综合| 国产高中生在线| 国产在线精彩自拍视频| 丰满人妻熟妇乱又仑精品|