李淼林,戴海燕,徐杰龍,歐陽奕濤,陳曉楷
(華南理工大學廣州學院,廣東 廣州 510800)
基于STM32的FSAE賽車底盤數(shù)據(jù)采集系統(tǒng)設計
李淼林,戴海燕,徐杰龍,歐陽奕濤,陳曉楷
(華南理工大學廣州學院,廣東 廣州510800)
本文基于STM32設計了一套高精度、大容量、多通道、廉價的數(shù)據(jù)采集系統(tǒng),包括硬件設計和軟件設計,使其應用于校內FSAE賽車的底盤調校,實現(xiàn)準確的數(shù)據(jù)分析與調試。該系統(tǒng)選用STM32F103ZET6作為微處理器,以SD卡作為存儲器,實現(xiàn)了多通道信號的同步、連續(xù)采集和存儲,具有性能穩(wěn)定、實時性強、擴展靈活等特點。
數(shù)據(jù)采集;STM32;FAT32文件系統(tǒng);數(shù)據(jù)存儲
2010年至今,我國FSAE賽事已經(jīng)連續(xù)舉辦了五屆,各高校賽車設計已逐漸趨于成熟和同化。發(fā)動機標定技術的進步已使得各高校FSAE賽車的動力穩(wěn)定而強勁,因此比賽成績主要取決于賽車在動態(tài)項目中的卓越表現(xiàn)——科學而高效的底盤調校。目前,國內賽車的底盤調校大多憑賽車手的主觀感覺,而缺乏客觀性和準確性,因此本文將針對華南理工大學廣州學院汽車工程學院FSAE賽車底盤,設計開發(fā)一套專用的經(jīng)濟、高效、準確的數(shù)據(jù)采集系統(tǒng),以便進行準確的數(shù)據(jù)分析與調試,顯著提高賽車的動態(tài)性能。
1.1系統(tǒng)主要功能
本數(shù)據(jù)采集系統(tǒng)主要實現(xiàn)數(shù)據(jù)采集、數(shù)據(jù)傳輸和數(shù)據(jù)存儲三種功能[1],具體如下:
1)多通道的模擬信號采集:采集并記錄方向盤轉向角和懸架減振器跳動位移。轉向角是通過在轉向盤下端的轉向軸處加裝角度傳感器來采集,懸架減振器跳動位移,則通過在減振器處加裝直線位移傳感器來采集;
2)多通道的脈沖信號采集:通過四個輪速傳感器,采集并記錄每個車輪的轉速,并存儲在大容量SD內存卡中。
系統(tǒng)方案總體設計框圖,如圖1所示。
圖1 系統(tǒng)方案總體設計圖
1.2系統(tǒng)工作原理
當系統(tǒng)外設傳感器(角度傳感器、直線位移傳感器和輪速傳感器)采集到原始數(shù)據(jù)信號后,通過信號調理電路對信號進行初步調理,再經(jīng)過多通道模擬信號處理,進入A/D轉換器進行模數(shù)轉換,并實現(xiàn)多通道數(shù)據(jù)的同步采集,將轉換后的數(shù)字信號,通過數(shù)據(jù)采集主控制器將數(shù)據(jù)傳輸并存儲到SD卡中。同時,采集到的脈沖信號通過內部電路處理后進入計數(shù)器,每間隔一段時間獲取相應的脈沖數(shù),并將其也存儲到SD卡中。最終從SD卡中導出相應數(shù)據(jù),用于分析輪速與轉向角的關系、懸架減振器跳動位移與轉向角的關系等。
硬件設計采用模塊化設計方法,主要包括四個模塊:微處理器電路、A/D接口電路、外圍存儲器電路和系統(tǒng)外圍電路。
2.1硬件選型
由于本系統(tǒng)需要大量的數(shù)據(jù)傳輸和多通道脈沖信號的同步采集,故選用32位微處理器STM32F103ZET6,其運算速度快且功能全面,功能和配置可查閱文獻[2]。
2.2A/D采集芯片的選型
考慮芯片成本、采集通道數(shù)和硬件接口設計等方面的需求,本系統(tǒng)選用Analog Device的AD7656作為A/D采集芯片。它內部包含6個A/D轉換器,最大轉換速率為25Kbps,轉換時間為3us,支持6個通道同步采集,可用來處理高達4.5MHz的信號[3]。AD7656接口電路,如圖2所示。
圖2 AD7656接口電路
2.3外圍存儲器及電路設計
本系統(tǒng)選用微型SD內存卡作為存儲器[2],并使用高速傳輸?shù)腟D模式。SD卡電路原理,如圖3所示。
圖3 SD卡電路原理
2.4系統(tǒng)外圍電路設計
系統(tǒng)外圍電路包括:電源電路、232串口通信電路、JTAG程序下載電路、時鐘電路和復位電路[4],與一般硬件電路類似,本文不再詳述。
3.1系統(tǒng)軟件總體流程設計
本系統(tǒng)軟件的總體流程設計,如圖4所示。當系統(tǒng)上電后,先進行初始化,包括控制器各外設和驅動程序,然后檢測SD卡內存容量,并提示是否清空數(shù)據(jù);同時檢測并接收外部傳感器的輸入信號,清空SD卡的舊數(shù)據(jù),待接收到外部觸發(fā)信號后,重新建立新的數(shù)據(jù)文件,實現(xiàn)數(shù)據(jù)采集和數(shù)據(jù)存儲[5]。
3.2數(shù)據(jù)采集流程
A/D芯片采集一定時間的流程,如圖5所示。當檢測到外部觸發(fā)信號時,打開定時器中斷。定時中斷函數(shù)主要處理6個通道同步采集一個點的工作。每隔一定時間(若采樣率為100Kbps,則定時中斷時間設為10us),中斷觸發(fā)。當COMSTX變?yōu)楦唠娖胶?,A/D轉換器開始采樣轉換,經(jīng)過3us轉換時間,BUSY引腳輸出為0(低電平),即轉換結束。當接收到反饋信號——讀信號(RD)變低時,就從16位總線上讀取1個通道數(shù)據(jù)。當6個通道數(shù)據(jù)全部讀取完畢,即可退出中斷,等待下一次中斷到來。當達到采集時間,關閉定時器,停止A/D轉換[1]。
3.3數(shù)據(jù)存儲
為了避免數(shù)據(jù)丟失,本系統(tǒng)需要不間斷地進行信號采集和數(shù)據(jù)實時存儲,因此數(shù)據(jù)存儲過程采用雙緩沖區(qū)模式,同時使用DMA以加速數(shù)據(jù)傳輸。其工作原理是:首先在內存中開辟兩個容量相同的緩沖區(qū)(8K),在數(shù)據(jù)采集過程中,先將數(shù)據(jù)寫入第一緩沖區(qū),寫滿后再寫入第二緩沖區(qū),并啟動DMA加速數(shù)據(jù)傳輸,直接將第一緩沖區(qū)的數(shù)據(jù)傳輸?shù)絊D接口寄存器,寫入SD卡,保證數(shù)據(jù)采集和數(shù)據(jù)存儲的連續(xù)性和實時性[6]。
圖4 系統(tǒng)軟件總體流程圖
圖5 A/D采集一定時間的流程
4.1FAT32文件系統(tǒng)的結構
本系統(tǒng)選用FAT32文件系統(tǒng),小容量數(shù)據(jù)通過Buffer存儲,大容量數(shù)據(jù)直接存取,提高了存取速度和效率。FAT32文件系統(tǒng)分為3個層次[1]:
1)API層:文件系統(tǒng)與用戶應用程序的接口;
2)文件系統(tǒng)層:對文件進行創(chuàng)建、讀取、寫入、關閉等操作;
3)底層驅動程序:讀寫SD卡。
FAT32文件系統(tǒng)的主程序包含五個文件:Diskio.c,diskio. h,ff.c,ff.h和integer.h。
其中Diskio.c和diskio.h是與底層硬件IO相關的函數(shù),ff.c和ff.h為API接口函數(shù),用于FAT32文件系統(tǒng)的配置和裁剪,integer.h定義了FAT32文件系統(tǒng)的數(shù)據(jù)類型。
4.2FAT32文件系統(tǒng)的移植
FAT32文件系統(tǒng)的移植過程主要實現(xiàn):
1)核查integer.h是否與STM32函數(shù)庫相符;
2)實現(xiàn)六個底層函數(shù):disk_initialize,disk_status,disk_ read,disk_write,disk_ioctl和disk_fattime的程序編寫。它們主要用來實現(xiàn)存儲介質的初始化和數(shù)據(jù)讀寫。限于篇幅,本文僅給出初始化函數(shù)程序。
4.3SD卡驅動程序的加載
本系統(tǒng)選用的 STM32F103ZET6微處理器,它有一個SDIO接口,如圖6所示。它采用4位數(shù)據(jù)總線模式,通過PC12、PC10、PC11、PC2、PC8和PC9六個引腳,實現(xiàn)對SD卡發(fā)送控制命令、地址和讀取數(shù)據(jù)等[7]。SDIO的命令、響應和數(shù)據(jù)傳輸格式可參考文獻[2]。
圖6 SDIO接口
SDIO_CK時鐘是通過PC12引腳連接到SD卡,實現(xiàn)SDIO接口與 SD卡的時鐘同步,可通過庫函數(shù) SDIO_Init (&SDIO_InitStructure)進行時鐘的配置和初始化。
加載SD卡時,將庫文件stm32f10x_sdio.c添加到工程項目中,并調用其函數(shù),實現(xiàn)SD卡的初始化和讀寫等操作。限于篇幅,下面僅給出部分初始化程序。
當SD卡執(zhí)行完初始化函數(shù)后,將返回OK值,下一步進入讀函數(shù)。當SD卡的所有驅動程序執(zhí)行結束,將調用FAT32文件系統(tǒng)提供的用戶接口函數(shù):f_mount,f_mkfs,f_open,f_write,f_getfree,f_lseek和f_close,完成數(shù)據(jù)的寫入。
圖7、圖8分別為華南理工大學廣州學院汽車工程學院FSAE賽車底盤的調試好的數(shù)據(jù)采集系統(tǒng)硬件電路板正面、背面。
圖7 數(shù)據(jù)采集系統(tǒng)硬件電路板正面
圖8 數(shù)據(jù)采集系統(tǒng)硬件電路板背面
本文完成了基于STM32的高速大容量數(shù)據(jù)采集系統(tǒng)的硬件電路設計和軟件設計,實現(xiàn)了FSAE賽車的轉向角信號、四個車輪的輪速信號和懸架減振器直線跳動位移信號的采集。降低了FSAE賽車底盤調校的成本和功耗,提高了數(shù)據(jù)采集的準確度和精度,從而提高FSAE賽車的動態(tài)性能。本系統(tǒng)實現(xiàn)了高速6通道數(shù)據(jù)信號的同步采集,并連接DMA高速總線和SDIO接口,數(shù)據(jù)存儲容量高達2G,并以FAT32文件系統(tǒng)形式實時存盤,以脫機方式工作。實踐證明,本系統(tǒng)時鐘電路和RTC時鐘電路較51系列和其他系列的MCU時鐘更加精準和穩(wěn)定。本系統(tǒng)還具有CAN總線模塊,擴展靈活。可通過軟件升級,實現(xiàn)賽車底盤數(shù)據(jù)與發(fā)動機控制模塊的通信,繼而實現(xiàn)發(fā)動機的數(shù)據(jù)采集,并進一步優(yōu)化賽車底盤參數(shù)。該數(shù)據(jù)采集系統(tǒng)在未來FSAE賽車的底盤調校中具有廣闊的應用前景。
[1]丁珍紅.基于STM32的高速大容量數(shù)據(jù)采集存儲系統(tǒng)設計[D].上海:上海交通大學,2011.
[2]STMicroelectronics.STM32F103 Data Sheet[EB/OL].[2007.11.8]. http://www.st.com/stonline/products/literature/ds/13587.pdf
[3]Analog Device.Inc.AD7656 Data Sheet[EB/OL].2004. http://www.analog.com/static/imported-files/data-sheets/ AD7656.pdf
[4]孫虹.高速實時大容量數(shù)據(jù)采集系統(tǒng)的設計與實現(xiàn)[D].天津:天津理工大學,2008.
[5]周振安,范良龍,王秀英,等.數(shù)據(jù)采集系統(tǒng)的設計與實踐[M].北京:中國地震出版社,2005.
[6]汪志剛.大容量數(shù)據(jù)采集存儲系統(tǒng)的研究與實現(xiàn)[D].成都:電子科技大學,2010.
[7]陳麗珍,林小薇.嵌入式ARM微處理器選用指南[J].單片機與嵌入式系統(tǒng)運用,2009(6):35-38.
Design of data acquisition system of FSAE racing car chassis based on STM32
LI Miao-lin,DAI Hai-yan,XU Jie-long,OUYANG Yi-tao,CHEN Xiao-kai
(Guangzhou College of South China University of Technology,Guangzhou 510800,China)
In this paper,a high precision,large capacity,multi channel,cheap data acquisition system based on the STM32 is designed,including hardware design and software design,which is applied to the FSAE racing car chassis calibration.It can realize accurate data analysis and debugging.The system uses STM32F103ZET6 as the microprocessor,uses SD as memory card,realizes multi channel signals synchronization,continuous acquisition and storage,has the characteristics of stable performance,strong real-time,flexible expansion,etc.
data acquisition;STM32;FAT32 file system;data storage
TN919.6
A
1674-6236(2016)06-0155-04
2015-04-29稿件編號:201504307
李淼林(1982—),女,湖北黃梅人,碩士,講師。研究方向:汽車電子、新能源汽車等。