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

基于STM32的以太網(wǎng)數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)

2015-08-07 12:10:26田玉周楚建安
微處理機(jī) 2015年1期
關(guān)鍵詞:系統(tǒng)設(shè)計(jì)

田玉周,楚建安

(西安工程大學(xué),西安710048)

基于STM32的以太網(wǎng)數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)

田玉周,楚建安

(西安工程大學(xué),西安710048)

提出了一種以太網(wǎng)數(shù)據(jù)采集系統(tǒng),該系統(tǒng)核心處理器和數(shù)據(jù)采集器件為STM32F103ZE,以太網(wǎng)控制芯片是DM9000A。分別介紹了采集器的硬件和軟件設(shè)計(jì),詳細(xì)分析了模擬量數(shù)據(jù)采集、分析、傳送的各模塊軟硬件設(shè)計(jì),詳細(xì)介紹了UIP1.0協(xié)議棧的移植。此以太網(wǎng)數(shù)據(jù)采集器可以用于遠(yuǎn)程監(jiān)控系統(tǒng)的數(shù)據(jù)采集模塊。

數(shù)據(jù)采集;STM32芯片;DM9000A芯片;UIP1.0協(xié)議

1 引 言

2 系統(tǒng)總體方案

隨著互聯(lián)網(wǎng)技術(shù)、以太網(wǎng)技術(shù)的發(fā)展,遠(yuǎn)程監(jiān)控越來越成為研究和應(yīng)用的熱點(diǎn)。作為遠(yuǎn)程監(jiān)控的重要組成部分,數(shù)據(jù)采集及傳送模塊也顯得尤為重要。遠(yuǎn)程監(jiān)控系統(tǒng)的發(fā)展對于數(shù)據(jù)采集的精確性、實(shí)時(shí)性和安全性都有了更高要求。

傳統(tǒng)數(shù)據(jù)采集由于儲(chǔ)存空間小和通訊接口的局限,存在精度不高、采集信息量小的缺點(diǎn),已經(jīng)不能滿足遠(yuǎn)程監(jiān)控系統(tǒng)中對數(shù)據(jù)的精度和信息量的需求。針對這種情況設(shè)計(jì)了基于STM32的以太網(wǎng)數(shù)據(jù)采集器,由于用到了以Cext-M3為核心的STM32芯片,該芯片有豐富的片上資源,大大節(jié)約了外圍硬件。同時(shí)芯片上16通道的12位ADC模數(shù)轉(zhuǎn)換模塊[1],也使數(shù)據(jù)采集的精確度顯著提高。基于以太網(wǎng)的數(shù)據(jù)傳輸協(xié)議的運(yùn)用,解決了通訊中通訊協(xié)議轉(zhuǎn)換的問題。實(shí)現(xiàn)了無縫信息集成。

本數(shù)據(jù)采集系統(tǒng)主要包含數(shù)據(jù)采集模塊、通訊模塊,整體設(shè)計(jì)如圖1所示。所要采集的模擬信號(hào)經(jīng)過前端模擬調(diào)理模塊的調(diào)節(jié),使之處于A/D轉(zhuǎn)換能夠轉(zhuǎn)換的電壓范圍內(nèi),再利用STTM32的片內(nèi)ADC模塊實(shí)現(xiàn)A/D轉(zhuǎn)換,采集過的數(shù)據(jù)經(jīng)STM32系統(tǒng)內(nèi)核處理后由DM9000A發(fā)送給上位機(jī)。

圖1 系統(tǒng)總體框圖

3 系統(tǒng)硬件設(shè)計(jì)

3.1 數(shù)據(jù)采集

數(shù)據(jù)采集模塊主要包括數(shù)據(jù)的調(diào)理和采集,其主要硬件是STM32。基于ARM Cortex-M3的STM32由意法半導(dǎo)體公司生產(chǎn),其數(shù)據(jù)總線寬度為32bit、最大時(shí)鐘頻率72MHz、具有256KB程序存儲(chǔ)器、64KB數(shù)據(jù)RAM、80個(gè)可編程輸入/輸出端、10個(gè)定時(shí)器、工作電源電壓2V~3.6V以及12位的ADC、FSMC。STM32數(shù)據(jù)采集有18個(gè)通道,可以測量16個(gè)外部模擬量和2個(gè)內(nèi)部模擬量,各通道的A/D轉(zhuǎn)換可以單次、連續(xù)、掃描或間斷模式執(zhí)行。ADC的結(jié)果可以左對齊或右對齊方式存儲(chǔ)在16位數(shù)據(jù)寄存器中。其結(jié)構(gòu)示意圖如圖2示。

圖2 A/D模塊示意圖

3.2 數(shù)據(jù)處理和傳輸

數(shù)據(jù)處理和傳輸模塊硬件主要由STM32微控制器和DA9000A以太網(wǎng)驅(qū)動(dòng)芯片構(gòu)成。DM9000A集成了10/100M物理層接口,內(nèi)部帶有16K字節(jié)SRAM作為數(shù)據(jù)收發(fā)的FIIO緩存,其中3k作為發(fā)送包緩沖區(qū),剩下的作為接收包緩沖區(qū)。支持8/16 bit兩種主機(jī)工作模式,本系統(tǒng)中用的是16bit工作模式。同時(shí)支持802.3以太網(wǎng)傳輸協(xié)議。

STM32與DM9000A連接電路如圖3所示。

圖3 硬件連接

DA9000A中只有兩個(gè)地址端口經(jīng)過處理器STM32直接訪問,一個(gè)是INDEX端口,另一個(gè)是DATA端口。而訪問哪個(gè)端口處理器是由CMD決定的。當(dāng)引腳CMD=0時(shí),處理器STM32訪問INDEX端口寄存器,當(dāng)引腳CMD=1時(shí),處理器STM32訪問DATA端口。INDEX端口的內(nèi)容為DATA端口的寄存器地址。在訪問任何寄存器之前,寄存器地址都必須保存在INDEX端口中。因此在讀寫DM9000A寄存器時(shí),先將其地址寫入INDEX,再通過DATA端口讀寫數(shù)據(jù)。

4 系統(tǒng)軟件設(shè)計(jì)

4.1 STM32數(shù)據(jù)采集程序

數(shù)據(jù)采集模塊程序的設(shè)計(jì)中,首先是對模擬量采集程序初始化。意法半導(dǎo)體公司提供了ADC模塊的固件庫函數(shù),通過對固件庫函數(shù)的調(diào)用,用戶可以輕松實(shí)現(xiàn)對ADC模塊的設(shè)置,本程序中,ADC的設(shè)置如下[2-3]:

1)對模擬量采集端口的設(shè)計(jì),我們設(shè)計(jì)為模擬輸入模式,GPIO_M(jìn)ode_AIN。

2)設(shè)置ADC工作模式為對立模式,ADC_M(jìn)ode_Independent。

3)使能ADC掃描。

4)設(shè)置ADC轉(zhuǎn)換工作為連續(xù)模式,ADC_ContinuousConvMode=ENABLE。

5)ADC觸發(fā)方式為軟件觸發(fā)

6)設(shè)置轉(zhuǎn)換所得到的數(shù)據(jù)右對齊

7)設(shè)置順序進(jìn)行規(guī)則轉(zhuǎn)換的ADC通道數(shù)目。

8)設(shè)置采樣順序和采樣時(shí)間。

通過以上設(shè)置,ADC模塊連續(xù)采樣并轉(zhuǎn)化各個(gè)模擬量,并且把所得數(shù)據(jù)儲(chǔ)存到16位數(shù)據(jù)儲(chǔ)存器中,等待其通過以太網(wǎng)向上位機(jī)傳輸。在這個(gè)過程中,UIP1.0提供的UIP_APPCALL(),將是我們對數(shù)據(jù)處理程序與UIP連接的一個(gè)重要函數(shù)。

4.2 DM9000A驅(qū)動(dòng)程序

作為底層驅(qū)動(dòng)程序,對DM9000A驅(qū)動(dòng)程序的編寫主要有三個(gè)方面:驅(qū)動(dòng)初始化、數(shù)據(jù)發(fā)送、數(shù)據(jù)接收。

4.2.1 驅(qū)動(dòng)器初始化

通過驅(qū)動(dòng)器初始化,可以啟動(dòng)以太網(wǎng)控制器DM9000A,使之處于數(shù)據(jù)收發(fā)狀態(tài),我們調(diào)用函數(shù)DM9000A_int(void):

完成以上設(shè)計(jì)后就可以使以太網(wǎng)控制器正常啟動(dòng),接收和發(fā)送數(shù)據(jù)包。

4.2.2 數(shù)據(jù)發(fā)送

DM9000A有16K的SRAM作為數(shù)據(jù)發(fā)送和接收緩沖區(qū)。其中3K作為發(fā)送緩沖區(qū),發(fā)送器的起始地址為0x00H,緩沖區(qū)可以保存index1、intex2兩個(gè)數(shù)據(jù)包,在軟件或硬件復(fù)位后,默認(rèn)的數(shù)據(jù)發(fā)送包為index1,首先將發(fā)送數(shù)據(jù)包長度寫入長度寄存器中,然后置位發(fā)送控制寄存器的bit-0位,則DM9000A開始發(fā)送index1數(shù)據(jù)包。在index1數(shù)據(jù)包發(fā)送結(jié)束之前,數(shù)據(jù)發(fā)送包index2被移入TX SRAM中。在index1數(shù)據(jù)包發(fā)送結(jié)束后,將index2數(shù)據(jù)字節(jié)長度寫入長度寄存器中,然后,置位發(fā)送控制寄存器的bit-0位,則index2數(shù)據(jù)包開始發(fā)送。在這里我們用到函數(shù)DM9000_send(void)。

4.2.3 數(shù)據(jù)接收

DM9000A的數(shù)據(jù)接收緩沖區(qū)是一個(gè)環(huán)形數(shù)據(jù)結(jié)構(gòu)[4]。在軟件或硬件復(fù)位后,RX SRAM的起始地址為0X0C00。每個(gè)接收數(shù)據(jù)包都包含有CRC校驗(yàn)域,數(shù)據(jù)域,以及緊跟其后的4字節(jié)包頭域。4字節(jié)包頭格式為:01h(是否接收到數(shù)據(jù)包)、狀態(tài)(確認(rèn)接收包是否正確)、BYTE_COUNT低、BYTE_COUNT高(接收包的長度)。接收函數(shù)為DM9000_read(void)。

4.3 UIP1.0協(xié)議棧的移植

系統(tǒng)軟件設(shè)計(jì)中需要移植UIP1.0協(xié)議棧,uip是瑞典計(jì)算機(jī)科學(xué)學(xué)院開發(fā)的,它去掉了完整的TCP/IP協(xié)議中不常用的功能,簡化了通訊流程,但是保留了必要的協(xié)議,重點(diǎn)放在了IP/TCP/ICMP/UDP/ARP這些網(wǎng)絡(luò)層和傳輸層協(xié)議上,保證了代碼的通用和結(jié)構(gòu)的穩(wěn)定。Uip協(xié)議棧主要提供了三個(gè)函數(shù)讓底層調(diào)用,它們是:uip_int()用于協(xié)議棧初始化,uip_intput()用于處理上位機(jī)傳過來的數(shù)據(jù)包,uip_periodic()用于處理uip內(nèi)部時(shí)鐘事件。同時(shí)提供UIP_APPCALL()用于應(yīng)用程序接口。

IP1.0協(xié)議棧,首先會(huì)通過uip_int()對協(xié)議棧進(jìn)行初始化,然后設(shè)置IP地址、網(wǎng)關(guān)、掩碼設(shè)置,以及監(jiān)聽端口,最后進(jìn)入主循環(huán)對數(shù)據(jù)處理。其數(shù)據(jù)處理過程如圖4所示。

圖4 uip數(shù)據(jù)處理流程圖

當(dāng)?shù)讓雍瘮?shù)接收到數(shù)據(jù)包時(shí)會(huì)放在uip_buff,先檢測數(shù)據(jù)包是否為0,不為0則說明收到數(shù)據(jù)包,再判斷該數(shù)據(jù)包是ip包還是ARP報(bào)文,若是ip包,經(jīng)過去以太網(wǎng)結(jié)構(gòu)更新ARP表后,將數(shù)據(jù)包交由uip_input()處理,再把其返回值發(fā)送到以太網(wǎng)。若是ARP報(bào)文,是ARP回應(yīng)就更新ARP表,是ARP請求則構(gòu)造回應(yīng)包做出回應(yīng)。同時(shí)uip還會(huì)定時(shí)對各個(gè)連接進(jìn)行輪詢[5]。

4.4 應(yīng)用程序接口

高級(jí)應(yīng)用程序UIP_APPCALL()是數(shù)據(jù)傳輸?shù)年P(guān)鍵,當(dāng)?shù)讓咏邮盏缴衔粰C(jī)傳來的數(shù)據(jù)時(shí),會(huì)通過uip_input,調(diào)用UIP_APPCALL()函數(shù),從而讓高級(jí)應(yīng)用程序去處理數(shù)據(jù),uip_int返回時(shí)會(huì)將輸出的數(shù)據(jù)賦值給uip_buff,數(shù)值長度賦值給uip_len,然后通過底層函數(shù)DM9000_send將獲得數(shù)據(jù)從以太網(wǎng)發(fā)出。

高級(jí)應(yīng)用程序如下所示,主要是檢測上位機(jī)發(fā)送過來的獲取電壓命令,根據(jù)不同命令將獲取的不同電壓值通過uip_int以返回值的形式傳輸給底層驅(qū)動(dòng)函數(shù),由驅(qū)動(dòng)函數(shù)發(fā)送到以太網(wǎng)上去。

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

程序在keil uvision4上用C語言編寫,編寫完成后經(jīng)Jlink下載到STM32。系統(tǒng)上電后,打開TCP&UDP測試工具,新建連接,設(shè)置目標(biāo)IP為192.168.1.10,目標(biāo)監(jiān)聽端口4001。打開連接,在發(fā)送端口輸入獲取指令,就可以獲得采集到的電壓數(shù)據(jù),如圖所示,上傳速度達(dá)到10K/S以上。

圖5 調(diào)試結(jié)果

6 結(jié)束語

該系統(tǒng)設(shè)計(jì)并移植了UIP1.0協(xié)議棧,用到STM32和DM9000A芯片。設(shè)計(jì)的以太網(wǎng)數(shù)據(jù)采集器能夠直接將模擬數(shù)據(jù)采集并傳給上位機(jī),12位的STM32使數(shù)據(jù)精確度大大提高,經(jīng)過調(diào)試達(dá)到了設(shè)計(jì)要求。本系統(tǒng)減少了芯片數(shù)量,使電路板設(shè)計(jì)小巧,能夠用于教學(xué)實(shí)驗(yàn)和工業(yè)領(lǐng)域。

[1] 意法半導(dǎo)體(中國)投資有限公司.STM32F10xxx參考手冊[EB/OL].[2011-5].http://www.st.com/mcu/.

[2] 孟強(qiáng),徐慧,萬青苗.基于STM32的數(shù)據(jù)采集及顯示系統(tǒng)的設(shè)計(jì)[J].計(jì)算機(jī)知識(shí)與技術(shù),2013,13(9):3184-3186.

[3] 郝雯,沈金鑫,梅成.基于STM32單片機(jī)的儲(chǔ)存市數(shù)據(jù)采集系統(tǒng)[J].電子設(shè)計(jì)工程,2013,17(21):80-82.

[4] 施勇,溫陽東.基于DM9000A的嵌入式以太網(wǎng)接口設(shè)計(jì)與實(shí)現(xiàn)[J].合肥工業(yè)大學(xué)學(xué)報(bào),2011,34(4):519-521.

[5] 張磊,周一帆.基于uip協(xié)議的生產(chǎn)設(shè)備數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].濟(jì)南大學(xué)學(xué)報(bào),2014,28(1):65-67.

Design of Ethernet Data Acquisition System Based on STM32

Tian Yuzhou,Chu Jian'an
(Xi’an Polytechnic University,Xi’an 710048,China)

An Ethernet data acquisition system is introduced in this paper,and STM32F103ZE is used as the core processor and data acquisition device and DM9000A as Ethernet controller chip.The hardware and software design of the acquisition device,the analog data acquisition,analysis and transfer are described in details,and the transplant of UIP1.0 protocol stack is proposed as well.The ethernet data acquisition system can be used for remotemonitoring system data acquisition module.

Data acquisition;STM32 Chip;DM9000A Chip;UIP1.0 agreement

10.3969/j.issn.1002-2279.2015.01.020

TP23

A

1002-2279(2015)01-0072-04

田玉周(1989-),男,河南濮陽人,碩士研究生,主研方向:電力電子與電力傳動(dòng)。

2014-04-25

猜你喜歡
系統(tǒng)設(shè)計(jì)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機(jī)系統(tǒng)
ZC系列無人機(jī)遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
何為設(shè)計(jì)的守護(hù)之道?
《豐收的喜悅展示設(shè)計(jì)》
流行色(2020年1期)2020-04-28 11:16:38
基于PowerPC+FPGA顯示系統(tǒng)
半沸制皂系統(tǒng)(下)
瞞天過海——仿生設(shè)計(jì)萌到家
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
設(shè)計(jì)秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
主站蜘蛛池模板: 91国内外精品自在线播放| 中文无码毛片又爽又刺激| 欧美性猛交一区二区三区| 久青草国产高清在线视频| 日本欧美视频在线观看| 激情六月丁香婷婷| 91久久国产综合精品| 精品国产www| 五月丁香伊人啪啪手机免费观看| 永久免费精品视频| 91久久偷偷做嫩草影院免费看| 国产人在线成免费视频| 欲色天天综合网| 九九热精品视频在线| 中文字幕亚洲专区第19页| 草草线在成年免费视频2| 亚洲中文字幕久久无码精品A| 亚洲av无码专区久久蜜芽| 免费高清毛片| 国产成人在线无码免费视频| 国产成人精品无码一区二| 热热久久狠狠偷偷色男同| 亚洲综合色在线| 亚洲AV无码乱码在线观看裸奔| 亚洲欧美日韩成人高清在线一区| 亚洲乱强伦| 在线看国产精品| 一边摸一边做爽的视频17国产| 午夜精品久久久久久久2023| 亚洲成人精品在线| 四虎永久在线精品影院| 天堂网亚洲系列亚洲系列| 无码国产伊人| 四虎精品国产永久在线观看| 欧美日本激情| 人妻熟妇日韩AV在线播放| 日韩美一区二区| 欧美成人综合视频| 在线观看免费国产| 日韩美毛片| 欧美国产综合视频| 香港一级毛片免费看| 大香伊人久久| 久久久久久久久久国产精品| 亚洲国产欧洲精品路线久久| 91在线丝袜| 无码AV动漫| 18黑白丝水手服自慰喷水网站| 在线一级毛片| 亚洲欧美成人网| 国产欧美日韩综合在线第一| 国产情侣一区二区三区| 另类综合视频| 老色鬼欧美精品| 亚洲中文字幕在线一区播放| 国产91成人| 波多野结衣二区| av在线人妻熟妇| 国产福利拍拍拍| 99ri国产在线| 国产偷倩视频| 日韩欧美高清视频| 99激情网| 波多野结衣亚洲一区| 中文一级毛片| 亚洲成人网在线观看| 国产一区二区人大臿蕉香蕉| 国产福利一区在线| 毛片一级在线| 无码国内精品人妻少妇蜜桃视频| 午夜视频日本| 国产精品偷伦在线观看| 亚洲av无码久久无遮挡| 国产AV毛片| 国产成人三级| 久久99精品国产麻豆宅宅| 免费无码网站| 国产va在线观看免费| 午夜免费视频网站| 天天综合色网| 亚洲综合亚洲国产尤物| 久久精品嫩草研究院|