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

基于FPGA的水質監測平臺通信協議設計*

2019-05-07 11:45:00徐華龍衷衛聲
傳感器與微系統 2019年5期
關鍵詞:圖表水質數據庫

徐華龍, 衷衛聲

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

0 引 言

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

本文設計一種水質監測平臺,通過對相關技術單元的設計分析尤其是平臺中數據通信協議的設計與實現,提出一種FPGA+云端+Android的水質監測平臺解決方案。

1 平臺總體框架設計

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

圖1 平臺總體框架設計

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

2 Modbus協議[6]的設計與實現

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

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

根據FPGA的自頂向下的模塊化的設計思想,將Modbus協議分為波特率發生器模塊、數據接收模塊、數據接收緩存器模塊、數據發送模塊、數據發送緩存器模塊及CRC校驗模塊,結構框圖如圖2所示。

圖2 Modbus模塊結構框圖

2.1 波特率發生器與Modbus接收模塊設計

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

接收模塊主要由三部分組成:數據檢測模塊、串并轉換模塊及數據緩存模塊。結構框圖如圖3所示[4]。

圖3 Modbus接收模塊結構

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

2.2 發送模塊設計

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

2.3 CRC校驗模塊

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

2.4 Modbus仿真

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

圖4 仿真結果

3 TCP/IP協議的Socket編程實現

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

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

圖5 Socket連接流程

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

4 移動端設計要點

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

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

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

Android:id="@+id/chart"

Android:layout_width="match_parent"

Android:layout_height="match_parent"/>

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

圖6 二參數曲線變化

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

5 結束語

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

猜你喜歡
圖表水質數據庫
水質抽檢豈容造假
環境(2023年5期)2023-06-30 01:20:01
一月冬棚養蝦常見水質渾濁,要如何解決?這9大原因及處理方法你要知曉
當代水產(2019年1期)2019-05-16 02:42:04
數據庫
財經(2017年2期)2017-03-10 14:35:35
雙周圖表
足球周刊(2016年14期)2016-11-02 10:54:56
雙周圖表
足球周刊(2016年15期)2016-11-02 10:54:16
雙周圖表
足球周刊(2016年10期)2016-10-08 18:30:55
圖表
世界博覽(2016年16期)2016-09-27 18:25:26
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
主站蜘蛛池模板: 日韩在线成年视频人网站观看| 极品国产在线| 天堂成人在线视频| 日韩午夜伦| 91综合色区亚洲熟妇p| 成人国产精品网站在线看| 午夜在线不卡| 免费毛片全部不收费的| 国产爽歪歪免费视频在线观看 | 国产精品网址你懂的| 欧美国产菊爆免费观看| 成人日韩欧美| 国产91视频免费观看| 国产成人精品18| 国产一级精品毛片基地| 欧日韩在线不卡视频| 亚洲天堂2014| 国产日韩欧美在线播放| 多人乱p欧美在线观看| 在线无码av一区二区三区| 国产夜色视频| 亚洲精品国产精品乱码不卞| 在线欧美国产| 午夜一级做a爰片久久毛片| 在线无码九区| 久久99国产综合精品1| 永久免费av网站可以直接看的 | 三上悠亚精品二区在线观看| 国产又粗又猛又爽视频| 国产丝袜啪啪| 永久免费AⅤ无码网站在线观看| 免费看一级毛片波多结衣| 在线观看无码av免费不卡网站| 亚洲最新地址| 最新亚洲人成无码网站欣赏网| 国产人碰人摸人爱免费视频| 少妇精品久久久一区二区三区| 欧美久久网| 又爽又大又光又色的午夜视频| 色欲不卡无码一区二区| 五月天久久婷婷| 国产网站免费看| 国产成人高清亚洲一区久久| 国产精品自在自线免费观看| 亚洲黄色高清| 久久精品亚洲热综合一区二区| 欧美日韩一区二区三区在线视频| 中国美女**毛片录像在线 | 国产精品亚欧美一区二区| 婷婷亚洲视频| 97在线免费| 亚洲精品无码AV电影在线播放| 久久午夜夜伦鲁鲁片无码免费| 东京热一区二区三区无码视频| 亚洲国产av无码综合原创国产| 草草影院国产第一页| 丁香亚洲综合五月天婷婷| 波多野结衣一区二区三视频| 又爽又大又光又色的午夜视频| 亚洲综合激情另类专区| 亚洲精品另类| 日韩a在线观看免费观看| 久久女人网| 国产精品自拍露脸视频| 久久久国产精品无码专区| 日韩精品无码一级毛片免费| 欧美在线导航| 国产自在线播放| 国产三级成人| 无码综合天天久久综合网| 欧美特黄一免在线观看| a级毛片免费在线观看| 中文字幕伦视频| 色哟哟精品无码网站在线播放视频| 狠狠色婷婷丁香综合久久韩国| 国产成人无码Av在线播放无广告| 久久精品国产电影| 久久大香香蕉国产免费网站 | 日韩AV无码免费一二三区| 欧美黄色a| 精品国产91爱| 国产欧美亚洲精品第3页在线|