基于STM32的傳感器接口模塊的設計
2.2 電壓/數字IO接口模塊設計
電壓接口模塊與數字開(kāi)關(guān)量接口模塊基本沿用電流接口模塊的設計。不同之處在于模擬輸入部分無(wú)需經(jīng)過(guò)電流一電壓轉換,直接經(jīng)運放輸入ADC。數字量接口直接由MCU的IO端口引出。傳感器輸出的電壓直接輸入同向放大電路至AD轉換所需要的電平。此處運放就相當于一個(gè)電壓跟隨器,顯著(zhù)特點(diǎn)就是,輸入阻抗高,而輸出阻抗低,可以提高驅動(dòng)能力。
2.3 接口模塊硬件實(shí)現
整個(gè)板子盡量使用緊湊布局。電源以及傳感器接口布置于左側,使用螺絲接線(xiàn)端子引出。串口以及以太網(wǎng)口布局在右側。整個(gè)模擬與數字部分基本分開(kāi)而設,有效避免干擾。布局基本沒(méi)什么變化,左邊螺絲接線(xiàn)端子往外移了一些,主要是考慮到外殼封裝上后螺絲端子可能不夠外露的問(wèn)題。
3 基于STM32的標準化接口模塊固件設計
標準化接口模塊的固件程序包括主程序、配置程序、ADC數據采樣程序、EEPROM讀寫(xiě)程序、以太網(wǎng)網(wǎng)口驅動(dòng)程序、UDP協(xié)議棧的嵌入。
接口模塊中共用到三種通信總線(xiàn)。ADC以及以太網(wǎng)控制器與MCU間為SPI總線(xiàn),EEPROM與MCU間為IIC總線(xiàn),另外接口模塊提供UART串口對外通信。以外網(wǎng)嵌入UDP協(xié)議。
3.1 AD數據采樣
AD數據采樣是整個(gè)系統接口模塊固件設計的核心工作,也是實(shí)現傳感器信息獲取的關(guān)鍵所在。該模塊負責將采集到的傳感器信息轉化為數字信號。
AD數據采樣主要完成如下的幾個(gè)功能:
(1)初始化。該工作主要完成對一些物理器件的引腳功能、工作模式等進(jìn)行預定義;
(2)AD轉換。通過(guò)軟件啟動(dòng)模數轉換芯片,完成模擬信號到數字信號的轉換;
(3)數據接收和發(fā)送。實(shí)時(shí)采集轉換后的信息,同時(shí)發(fā)送相應的控制命令,以切換采集通道。
在數據采集過(guò)程中,我們可能需要切換不同通道,從而實(shí)現對多個(gè)傳感器信息的獲取。實(shí)際設計中,控制器會(huì )在采集本次通道轉換結果的同時(shí),發(fā)送下次采集通道的編號。詳細操作步驟如下:
(1)需采集的通道地址(Ch)通過(guò)SPI接口寫(xiě)入ADS8344的相應寄存器,應用設定的波特率來(lái)設置接口傳輸速度;
(2)通過(guò)MCU設置GPIOB12(作為AD的CS信號)為低來(lái)啟動(dòng)ADS8344進(jìn)行數據采樣和轉換,數據傳輸方式為SPI發(fā)送模式;
(3)當數據發(fā)送完畢后,設置GPIOB12為高電平,ADS8344結束數據傳輸,進(jìn)入空閑模式并等待MCU的指令。此外,固件代碼中設置了對ADC進(jìn)行軟標定的程序。這樣可以通過(guò)精密信號源對ADC進(jìn)行標定,提高采樣精讀。標定信息存儲于EEPROM中。功能實(shí)現代碼如下:
3.2 以太網(wǎng)口驅動(dòng)
同樣需要先進(jìn)行SPI接口和GPIO端口初始化,與之前ADC類(lèi)似,只不過(guò)這里用SPI1口。GPIO初始化也不再多說(shuō)。以太網(wǎng)驅動(dòng)部分主要是數據包的發(fā)送/接收,緩沖區的讀寫(xiě),物理層的寫(xiě)等函數。SPI口的發(fā)送/接收函數如下:
評論