《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 業(yè)界動(dòng)態(tài) > 基于C8051F040的跆拳道綜合模擬訓(xùn)練儀控制系統(tǒng)設(shè)計(jì)

基于C8051F040的跆拳道綜合模擬訓(xùn)練儀控制系統(tǒng)設(shè)計(jì)

2008-05-07
作者:楊先軍, 孫怡寧, 周 旭

  摘 要: 介紹了基于C8051F040 單片機(jī)的跆拳道綜合模擬訓(xùn)練儀控制系統(tǒng)" title="控制系統(tǒng)">控制系統(tǒng)的硬件和軟件設(shè)計(jì),系統(tǒng)在交付使用后,證明控制系統(tǒng)是穩(wěn)定可靠的。
  關(guān)鍵詞: C8051F040 傳感器 CAN總線 RS232


  跆拳道綜合模擬訓(xùn)練儀研制課題屬于科技部重點(diǎn)攻關(guān)項(xiàng)目,由中科院合肥智能機(jī)械研究所承擔(dān)。該課題的研制目標(biāo)為:研制適用于跆拳道強(qiáng)化技戰(zhàn)術(shù)訓(xùn)練的模擬訓(xùn)練儀,可按教練員要求,模擬運(yùn)動(dòng)員前進(jìn)、后退及轉(zhuǎn)體,引導(dǎo)運(yùn)動(dòng)員擊打指定部位,達(dá)到訓(xùn)練目的;并可對(duì)擊打動(dòng)作的相關(guān)技術(shù)參數(shù)進(jìn)行測(cè)量與綜合分析,給出量化評(píng)價(jià)結(jié)果。該系統(tǒng)自2005年12月投入國(guó)家跆拳道隊(duì)使用至今,大幅度提升了科學(xué)訓(xùn)練水平,得到了拳跆中心領(lǐng)導(dǎo)、教練員、運(yùn)動(dòng)員的認(rèn)可與高度評(píng)價(jià),填補(bǔ)了該項(xiàng)目科學(xué)訓(xùn)練的空白。
1 系統(tǒng)原理與主要功能
  該系統(tǒng)的主要機(jī)械結(jié)構(gòu)如圖 1 所示??刂葡到y(tǒng)部分采用伺服電機(jī)" title="伺服電機(jī)">伺服電機(jī)控制靶體前后運(yùn)動(dòng),由步進(jìn)電機(jī)控制靶體轉(zhuǎn)身運(yùn)動(dòng);在靶體左肋、胸部、右肋部位各裝有一個(gè)單維力傳感器,在頭部裝有一個(gè)三維力傳感器,可以測(cè)量運(yùn)動(dòng)員擊打四個(gè)擊打部位的力量;在地面上鋪設(shè)了2m×3m的柔性陣列傳感器,可以測(cè)量運(yùn)動(dòng)員在傳感器上的位置,進(jìn)而計(jì)算出運(yùn)動(dòng)員與靶體的實(shí)時(shí)距離;控制系統(tǒng)與工作于上位機(jī)" title="上位機(jī)">上位機(jī)的綜合模擬訓(xùn)練指導(dǎo)系統(tǒng)通訊,接收上位機(jī)的指令。系統(tǒng)總體設(shè)計(jì)如圖 2 所示。

?


2 硬件設(shè)計(jì)
  由于跆拳道綜合模擬訓(xùn)練控制系統(tǒng)要求系統(tǒng)的響應(yīng)速度快、魯棒性好、通信距離長(zhǎng)、通信穩(wěn)定性好,因此本文選用C8051F040單片機(jī)為控制系統(tǒng)的中央處理器。該單片機(jī)集成了CAN2.0B總線控制器。指令執(zhí)行速率最高可達(dá)25MIPS。
  該控制系統(tǒng)主要由CPU模塊、伺服電機(jī)控制模塊、步進(jìn)電機(jī)控制模塊、力傳感器信號(hào)采集模塊、柔性陣列傳感器信號(hào)采集模塊、通信轉(zhuǎn)發(fā)模塊、電源模塊等組成。下面介紹主要模塊的實(shí)現(xiàn)。
2.1 CPU 模塊
  CPU模塊主要由振蕩器、I/O端口、CAN總線、串口" title="串口">串口模塊、存儲(chǔ)器擴(kuò)展、JTAG接口單元等組成。
  振蕩器采用外部晶體振蕩器,頻率為11.0592MHz。采用該頻率晶體振蕩器是為了串口通訊波特率的誤差能夠最小。
  由于Silicon Labs CAN 是一個(gè)協(xié)議控制器,不提供物理層驅(qū)動(dòng)器(即收發(fā)器),因此要實(shí)現(xiàn)與CAN總線的接口,還需要接口控制器,例如82C250、TJA1050等。這里選用TJA1050,CAN總線硬件電路如圖3 所示。


  RS-232C標(biāo)準(zhǔn)電平采用負(fù)邏輯,規(guī)定3V~15V之間的任意電平為邏輯“0”電平, -3V~-15V之間的任意電平為邏輯“1”電平,而C8051F040 輸出為TTL電平,所以在通訊時(shí),必須進(jìn)行電平轉(zhuǎn)換,以便與RS-232C標(biāo)準(zhǔn)電平匹配。在此,電平轉(zhuǎn)換芯片選用MAX232 芯片。
2.2 伺服電機(jī)控制模塊
  系統(tǒng)的伺服電機(jī)選用華中數(shù)控伺服電機(jī),電機(jī)的最大力矩為55Nm。伺服電機(jī)的工作方式采用內(nèi)部速度方式,通過串口通訊設(shè)置電機(jī)的轉(zhuǎn)動(dòng)速度、加減速時(shí)間常數(shù)等參數(shù);通過 CPU 輸出信號(hào)控制伺服電機(jī)驅(qū)動(dòng)器" title="電機(jī)驅(qū)動(dòng)器">電機(jī)驅(qū)動(dòng)器使能信號(hào)和電機(jī)抱閘信號(hào)以啟停電機(jī)。伺服電機(jī)驅(qū)動(dòng)器采用24V電源,而C8051F040 的輸出電平為3.3V,故需要電平轉(zhuǎn)換芯片,在此選用ULN2803 芯片。由于伺服電機(jī)的抱閘器會(huì)存在比較大的反灌電流,因此需要通過繼電器將其與ULN2803 相隔離以保護(hù)芯片。伺服電機(jī)驅(qū)動(dòng)電路原理圖如圖 4 所示。


  對(duì)于伺服電機(jī)驅(qū)動(dòng)器的工作狀態(tài),可以通過讀取伺服電機(jī)驅(qū)動(dòng)器狀態(tài)輸出信號(hào)來獲得。
2.3 柔性陣列傳感器信號(hào)采集
  測(cè)距系統(tǒng)的主要功能就是測(cè)量出運(yùn)動(dòng)擊打時(shí)在點(diǎn)陣式陣列傳感器上的位置信息,并將位置信息傳送給上位機(jī)。測(cè)距系統(tǒng)原理:點(diǎn)陣式陣列傳感器為 3M(75行)×2M(50列),行線之間及列線之間的間隔均為4cm ,可以根據(jù)運(yùn)動(dòng)所處的行線和列線的值來確定運(yùn)動(dòng)員在柔性陣列傳感器上的位置。
  硬件設(shè)計(jì)原理:將行線作為掃描線,依次對(duì)每條行線輸出高電平信號(hào),每輸出一次讀取一次列線的信息,如果在陣列上的一點(diǎn)導(dǎo)通,則在該點(diǎn)的行線輸出高電平時(shí),該點(diǎn)所處列線輸出電平會(huì)有變化,根據(jù)這個(gè)原理就可以確定所處的列線和行線。掃描電路采用74HC164 移位寄存器依次對(duì)每條行線輸出高電平,MCU通過74HC244 以選通方式擴(kuò)展 I/O口直接讀取列線的狀態(tài)。
2.4 電源模塊
  CPU 模塊MCU 需要3.3V的直流電源供電,且每個(gè)端口可以承受的電壓為5V,串口電平轉(zhuǎn)換芯片MAX202以及光耦隔離芯片6N137 均需要5V直流電源驅(qū)動(dòng),故在設(shè)計(jì)CPU 模塊電源時(shí)必須提供5V和3.3V的直流電源。考慮到對(duì)電源模塊的兼容性(直流電源或交流電源均可以供電),在設(shè)計(jì)CPU模塊電源電路時(shí)加入了整流橋和穩(wěn)壓模塊。采用電源隔離器B0505S將輸入電源和CPU模塊的電源相隔離,以屏蔽電源沖擊影響MCU的執(zhí)行。電源模塊電路圖如圖5所示。


2.5 通訊轉(zhuǎn)發(fā)模塊
  通訊轉(zhuǎn)發(fā)模塊主要作用就是實(shí)現(xiàn) CAN 總線協(xié)議與 RS232協(xié)議之間的轉(zhuǎn)換。硬件設(shè)計(jì)采用獨(dú)立的C8051F040作為MCU的CPU模塊,硬件電路主要包括 CAN總線電路和串口電路,轉(zhuǎn)換協(xié)議由控制軟件完成。
3 軟件設(shè)計(jì)
  控制系統(tǒng)軟件采用模塊化結(jié)構(gòu),主要包括主程序、伺服電機(jī)控制程序、步進(jìn)電機(jī)控制程序、ADC 采集程序、柔性陣列傳感器信號(hào)采集程序、串口通訊程序、CAN 通訊程序、通訊轉(zhuǎn)發(fā)模塊程序等。下面將介紹主要模塊的軟件結(jié)構(gòu)設(shè)計(jì)。
3.1 主程序
  控制系統(tǒng)主程序主要完成MCU 的配置(看門狗配置、交叉開關(guān)配置、端口輸入輸出方式配置、時(shí)鐘源配置)、CAN總線初始化、串口工作方式初始化、12位A/D 轉(zhuǎn)換器初始化、伺服電機(jī)狀態(tài)檢測(cè)、等待上位機(jī)指令并跳轉(zhuǎn)到相應(yīng)模塊執(zhí)行等功能。其程序框圖如圖 6 所示。


3.2 柔性陣列傳感器采集程序
  該程序算法為:依次對(duì)行線置高電平,同時(shí)讀取列線的狀態(tài)信息,如果列線不全為0,則說明測(cè)量到位置,退出本次掃描,清除行線信息,并發(fā)送位置信息給上位機(jī);如果列線全為0,則繼續(xù)對(duì)行線依次置高電平直至本次掃描結(jié)束。該掃描算法在實(shí)際應(yīng)用中測(cè)量的是壓力中心點(diǎn)。
3.3 通訊轉(zhuǎn)發(fā)模塊程序
  通訊轉(zhuǎn)發(fā)模塊的軟件設(shè)計(jì)主要是實(shí)現(xiàn)協(xié)議的轉(zhuǎn)換。其程序結(jié)構(gòu)框圖如圖 7 所示。


  CAN總線協(xié)議與RS232協(xié)議轉(zhuǎn)換的算法:CAN總線發(fā)送數(shù)據(jù)包有8個(gè)數(shù)據(jù),接收到CAN數(shù)據(jù)包后提取數(shù)據(jù)并將其壓棧到串口發(fā)送緩沖區(qū),然后關(guān)閉CAN中斷,等待串口發(fā)送完畢;接收上位機(jī)的指令后,轉(zhuǎn)發(fā)模塊將接收到的數(shù)據(jù)依次壓棧到CAN總線發(fā)送緩沖區(qū),等待發(fā)送結(jié)束標(biāo)志 EE,然后調(diào)用CAN總線發(fā)送函數(shù)。上位機(jī)指令字節(jié)數(shù)最大為3。
  通訊轉(zhuǎn)發(fā)模塊與上位機(jī)串口的通訊協(xié)議:上位機(jī)發(fā)送數(shù)據(jù)以 EE 為起始標(biāo)志;下位機(jī)發(fā)送數(shù)據(jù)以EE為結(jié)束標(biāo)志。
  本文設(shè)計(jì)跆拳道綜合模擬訓(xùn)練儀的控制系統(tǒng),并實(shí)現(xiàn)了靶人前后運(yùn)動(dòng)、靶人轉(zhuǎn)身運(yùn)動(dòng)、測(cè)量運(yùn)動(dòng)員擊打力度、測(cè)量運(yùn)動(dòng)員擊打位置與靶人之間的距離、測(cè)量運(yùn)動(dòng)員的反應(yīng)時(shí)間等功能。目前,該系統(tǒng)已通過科技部驗(yàn)收,交付給國(guó)家跆拳道隊(duì)使用,得到了教練員和運(yùn)動(dòng)員的一致好評(píng)。
參考文獻(xiàn)
1 童長(zhǎng)飛. C8051F系列單片機(jī)開發(fā)與C語言編程. 北京:北京航空航天大學(xué)出版社,2005:50~341
2 方 立,孫怡寧. 新型三維力傳感器的研制與應(yīng)用. 傳感技術(shù),2002;21(7):49~51

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。