基于FPGA的運動鞋專用數(shù)據(jù)發(fā)送芯片及競走電子裁判的設(shè)計與實現(xiàn)
1 設(shè)計摘要
FPGA芯片具有高速并行計算的特點。隨著摩爾定律的發(fā)展,計算科學(xué)已經(jīng)步入并行化的時代,具有并行處理能力的CPU/GPU隨即面世。而FPGA芯片憑借其并行計算的能力,已經(jīng)可以輕松將科學(xué)計算、邏輯運算、ASIC設(shè)計等應(yīng)用并行化。我們以電子競技裁判為切入點,將該特性普及化、應(yīng)用于生活運動領(lǐng)域。本設(shè)計在每個競走運動員的鞋子上都安裝加速度傳感器,在競走過程中,將采集到的加速度數(shù)據(jù)通過射頻發(fā)送給基于FPGA芯片設(shè)計的電子裁判,把復(fù)雜的算法、數(shù)據(jù)處理交給FPGA芯片完成,讓電子裁判進行判斷。這樣,在數(shù)十名運動員進行競走訓(xùn)練的時候,并不需要另外安排裁判員而準(zhǔn)確測出犯規(guī)問題。大大地減輕人力資源以及從根本上提高了競走訓(xùn)練的效率和靈活性,是FPGA并行化應(yīng)用的一次全新嘗試。
2 系統(tǒng)原理與技術(shù)特點
根據(jù)競走比賽規(guī)則:
- 一個競走運動員必須始終保持有一直腳落在地面上。
- 從前進腳落地的一刻起直到腿部達到垂直的姿勢,腿部必須保持直線,膝蓋不能彎曲。
我們把集成了加速傳感器、射頻收發(fā)器等專用芯片的運動鞋節(jié)點安裝在每只專用訓(xùn)練鞋上,并將它固定在腳跟位置。那樣,在競走時,如果兩只腳同時離地,兩只腳的加速傳感器都會捕獲到一個同時向前的加速度。另外,由于是騰空,在豎直方向上的加速度,會和保持腳落在地面是不同的。因此,通過分析x、y、z三個方向的加速度數(shù)學(xué)模型,我們可以從中判別是否出現(xiàn)違規(guī)現(xiàn)象。
而我們的電子裁判系統(tǒng)是以基于FPGA芯片為基礎(chǔ),通過CC2500射頻收發(fā)器無線接收每個運動員訓(xùn)練過程中傳遞過來的加速度。FPGA芯片收到所有運動員的采樣數(shù)據(jù)后,調(diào)用相應(yīng)的片內(nèi)模塊算法進行判斷計算,依靠其并行化的特點,可以將每個運動員的數(shù)據(jù)處理并行化。如果有違規(guī)現(xiàn)象,可以通過亮燈或者喇叭鳴叫作出警示。最后甚至可以再將計算結(jié)果通過PCI Express總線或有線網(wǎng)絡(luò)返回給PC機。以方便數(shù)據(jù)存儲或進一步的數(shù)據(jù)分析,以監(jiān)控每個運動的訓(xùn)練狀況。
系統(tǒng)的技術(shù)特點有以下幾點:
(1)完全的電子監(jiān)控裁判系統(tǒng),可以排除人為因素的疏忽錯判漏判。并且在訓(xùn)練過程中不需要另外再安排人手,以更加靈活高效有彈性的安排訓(xùn)練時間和進程;
(2)利用FPGA的高速并行特性,可實現(xiàn)多種同類型計算的并行化,因此滿足多運動員訓(xùn)練的同時監(jiān)控,并快速作出判斷;
3 系統(tǒng)軟件流程
圖 1 多節(jié)點數(shù)據(jù)判斷的軟件流程
上圖所示為多節(jié)點回傳采樣數(shù)據(jù)并調(diào)用并行計算的過程,運動鞋節(jié)點與FPGA芯片的通信通過無線網(wǎng)絡(luò)來完成。FPGA芯片根據(jù)接收到的采樣數(shù)據(jù)、調(diào)用判斷算法來判斷違規(guī)現(xiàn)象并進行警示。
4 系統(tǒng)框架
圖 2 系統(tǒng)框架
上圖所示為系統(tǒng)的組成結(jié)構(gòu)。運動鞋節(jié)點主要有加速傳感器的驅(qū)動程序,射頻收發(fā)器的驅(qū)動程序;FPGA端主要有無線網(wǎng)絡(luò)接口、犯規(guī)判斷算法的Verilog HDL模塊。
5 系統(tǒng)功能
5.1 運動鞋節(jié)點功能
(1)讀寫加速傳感器數(shù)據(jù)
(2)無線發(fā)送采樣數(shù)據(jù)
(3)異常處理
5.2 FPGA電子裁判功能
(1)接收網(wǎng)絡(luò)數(shù)據(jù)
(2)根據(jù)采樣數(shù)據(jù)調(diào)用判斷算法,進行運動員違規(guī)識別
(3)對違規(guī)現(xiàn)象實行示警
(4)將計算模塊回應(yīng)的計算結(jié)果,通過PCI Express總線接口或有線網(wǎng)絡(luò)將數(shù)據(jù)回送給PC
5.3 FPGA PCI Express總線接口IP核功能
(1)通過PCI Express總線讀寫數(shù)據(jù)
5.4 PC機數(shù)據(jù)優(yōu)化模塊功能
(1)根據(jù)具體的應(yīng)用要求加入不同的優(yōu)化算法模塊
6 系統(tǒng)詳細(xì)設(shè)計
6.1 運動鞋節(jié)點的設(shè)計
我們的運動鞋節(jié)點是以MSP430單片機為核心,并連接外部芯片加速傳感器ADXL330。我們通過MSP430內(nèi)部的ADC數(shù)模轉(zhuǎn)換模塊獲得該ADXL330芯片的加速度數(shù)據(jù)。
圖3 加速傳感器ADXL330電路圖
6.2 CC2500無線網(wǎng)絡(luò)的設(shè)計
MSP430通過CC2500和CC2591相互協(xié)同工作,將從ADXL330讀取的加速度數(shù)據(jù)通過無線網(wǎng)絡(luò)傳回給FPGA電子裁判作出判斷。
6.3 FPGA電子裁判的設(shè)計
同樣,在電子裁判端,我們用MSP430單片機和CC2500、CC2591芯片,接收無線網(wǎng)絡(luò)傳送過來的加速度數(shù)據(jù),并通過串口與FPGA相連。但從串口的傳輸速度來看,通過串口傳輸是一個瓶頸。所以我們打算做一個有多點串口的FPGA板,每個串口連接一個MSP430,而每一個MSP430負(fù)責(zé)接收一部分的運動鞋節(jié)點的數(shù)據(jù)。
而在FPGA板上,我們寫一個驅(qū)動,將串口數(shù)據(jù)存入自定義buffer里。這里的自定義buffer,是由VHDL語言寫的鎖存器組合而成。最后的FPGA判斷算法模塊,就是讀取所有鎖存器的數(shù)據(jù),進行快速并行計算,得出違規(guī)結(jié)果。
6.4 FPGA端的PCI控制器模塊設(shè)計
圖5 PCI設(shè)備結(jié)構(gòu)圖
評論