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