摘"要:利用FPGA構建了SoPC,移植了uC/OSII操作系統,實現了基于無刷直流電機的小風扇轉速智能控制系統的硬件和軟件設計;利用DS18B20溫度傳感器采集環境溫度,根據環境溫度自動控制電機的轉速;利用HCSR04超聲波模塊測量物體距離,實現了物體接近風扇到8cm距離時,無刷直流電機自動限速,同時蜂鳴器報警;利用SU03T語音識別模塊實現了語音控制電機轉速;通過FPGA與STM32F103C8T6單片機控制的WiFi模塊串口通信,實現將環境溫度、風扇轉速、距離報警信號、電機旋轉方向數據上傳到阿里云。
關鍵詞:SoPC;uC/OSII;無刷直流電機;語音識別;阿里云
中圖分類號:TP241.3
Design"of"Experimental"Teaching"Cases"for
\"Electronic"System"Design\""Course"Based"on"SoPC
Dong"Sheng"Zhao"Ying"Meng"Xiang"Xing"Liyun"Jia"Yanfei
School"of"Electrical"and"Information"Engineering,Beihua"University"JilinJilin"132021
Abstract:A"SoPC"was"constructed"using"FPGA,and"the"uC/OSII"operating"system"was"ported"to"achieve"the"hardware"and"softwarenbsp;design"of"a"small"fan"speed"intelligent"control"system"based"on"brushless"DC"motor;Using"DS18B20"temperature"sensor"to"collect"ambient"temperature"and"automatically"control"the"motor"speed"based"on"the"ambient"temperature;By"using"the"HCSR04"ultrasonic"module"to"measure"the"distance"between"objects,it"has"been"achieved"that"when"an"object"approaches"the"fan"to"a"distancenbsp;of"8cm,the"brushless"DC"motor"automatically"limits"its"speed"and"the"buzzer"sounds"an"alarm;The"SU03T"speech"recognition"module"was"used"to"achieve"voice"control"of"motor"speed;Through"serial"communication"between"FPGA"and"STM32F103C8T6"microcontroller"controlled"WiFi"module,environmental"temperature,fan"speed,distance"alarm"signal,and"motor"rotation"direction"data"can"be"uploaded"to"Alibaba"Cloud.
Keywords:SoPC;uC/OSII;Brushless"DC"Motor;Voice"Recognition;Alibaba"Cloud
本文對本科電子信息工程專業“電子系統設計”課程的實驗教學項目進行了研究,實驗課程總學時8學時,要求學生分組完成環境溫度采集、直流無刷電機轉速控制系統的仿真設計與實物調試,完成系統設計與實物驗收考核,撰寫實驗報告[1]。
實驗的教學目標是解決環境溫度的實時采集、直流無刷電機轉速的智能控制以及阿里云平臺無線傳輸數據問題,傳授學生利用單片機、SoPC、uC/OSII、VerilogHDL編程技術,實現串口通信、WiFi通信、PWM控制功能;鍛煉學生的電路設計、程序調試、設備使用與電路故障診斷能力,培養學生進行電子系統設計與解決工程實際問題的能力[1]。
1"智能小風扇轉速控制系統整體結構設計
智能小風扇轉速控制系統整體結構如圖1所示,FPGA開發平臺采用實驗室常見的DE270多媒體開發板[2],構建SoPC片上可編程系統,移植uC/OSII實時操作系統,編寫C語言程序實現多任務調度以及任務之間的通信。
系統實現下述功能:
(1)構建基于NIOSII的SoPC片上系統[3];
(2)建立uC/OSII多任務實時采集、顯示、傳輸環境溫度,測溫范圍-10℃~+85℃,精度±0.5℃[4],實現超溫聲音報警;
(3)驅動型號為R2418CE、參數為DC12V4500RPM的直流無刷電機[5],根據環境溫度改變電機轉速,溫度越高,轉速越快,實時測量與顯示風扇轉速;
(4)實現基于超聲波測距原理的物體異常接近,風扇轉速限速控制功能,測距范圍3~200cm,誤差在1cm范圍內[6];
(5)與阿里云通信實時上傳溫度值、風扇轉速值、距離報警信號、電機旋轉方向數據;
(6)識別非特定人的語音指令,實現電機轉速的三檔語音控制。
2"系統電路設計
2.1"超聲波測距、聲光報警、距離顯示模塊電路設計
利用VerilogHDL編程驅動HCSR04模塊實現超聲波測距、聲光報警及距離顯示功能,電路見圖2。echo和trig連接到超聲波測距模塊HCSR04的對應端口[7],out_range_buzz連接到蜂鳴器距離報警電路,seg連接到DE270開發板的LED數碼管顯示驅動電路,out_range_led分別連接到DE270開發板的LED紅色指示燈和NIOSII處理器AVALON總線的距離報警輸入端口pio_outrange_in[2]。
2.2"PWM驅動模塊設計
利用VerilogHDL編程實現了直流電機驅動模塊電路。duty端口連接到NIOSII處理器PWM占空比輸出端口,pwm_out端口連接到直流無刷電機的PWM信號輸入端口,PWM信號頻率范圍控制在15~25kHz范圍內[5]。
2.3"測速模塊設計
利用VerilogHDL編程實現了電機測速模塊電路。pulse_in端口連接到直流無刷電機的速度反饋輸出信號端口;seg_data端口連接到DE270開發板的LED數碼管顯示驅動電路,顯示轉速值;speed_out端口連接到NIOSII處理器的測速輸入端口[2,5]。
2.4"核心處理器模塊設計
基于NIOSII核心處理器的片上系統設計見圖3。處理器的pio_in_key_dir端口連接到DE270開發板的按鍵;通過pio_out_motor_dir端口輸出控制電機的轉向;串行通信端口uart_yuyin和uart_stm32_yun分別連接到SU03T語音識別模塊[8]和STM32F103C8T6控制的WiFi模塊,分別用于輸入識別語音指令以及向阿里云上傳數據;bidir_port_to_and_from_the_pio_18b20端口連接到DS18B20溫度傳感器的DQ數據端口;my_lcd控制端口和數據端口用于驅動1602LCD顯示溫度和轉速數據;SDRAM端口用于驅動SDRAM存儲器,構成片上系統的內存空間[23]。
2.5"蜂鳴器距離報警電路設計
采用S8050型三極管驅動有源蜂鳴器,實現近距離報警。
2.6"DS18B20接口電路設計
DS18B20溫度傳感器的DQ端,外接上拉電阻,連接到NIOSII處理器的bidir_port_to_and_from_the_pio_18b20端口[7]。
2.7"語音識別模塊接口電路設計
SU03T語音識別模塊的B7引腳連接到NIOSII核心處理器的uart_yuyin_rxd串口輸入端口[9]。
2.8"WiFi模塊接口電路設計
WiFi模塊ESP8266接口電路見圖4[9],一個串口負責接收FPGA通過EIARS232串口發來的、經過RS232TTL接收模塊轉換后的數據,另一個串口將數據打包,通過連接WiFi熱點將數據上傳給阿里云服務器[9]。
3"基于eclipse的NIOSII、uC/OSII系統程序設計
在主程序中創建了兩個用戶任務task1、task2。在task1中,首先,采用臨界段代碼技術采集環境溫度,防止溫度采集時序被打斷,確保溫度采集數據準確[10];其次,讀取電機轉速數據,讀取按鍵控制的自動和手動模式控制轉速信息;最后,將所有數據打包成32位數據格式,通過消息郵箱傳遞給task2。32位數據打包格式:1位模式控制位,15位溫度數據,16位轉速數據。
在task2中顯示溫度值及轉速值,控制電機轉動。在手動控制模式下,實現根據語音指令控制電機轉速;在自動控制狀態下,實現根據環境溫度,利用PID控制算法自動控制電機轉速;實現物體距離異常接近風扇限速以及語音控制轉速;將電機轉速、溫度、距離、電機轉向數據打包,通過串口發送給STM32F103C8T6單片機控制的WiFi模塊,然后發送給阿里云。
在task1、task2之間采用雙郵箱通信技術,同步兩個任務之間的數據傳輸[10]。
4"系統調試與結果分析
4.1"系統設計結果
系統設計結果實物圖見圖5。
4.2"利用WiFi上傳阿里云溫度、轉速、距離報警、電機轉向數據結果
利用WiFi上傳阿里云溫度、轉速、距離報警、電機轉向數據結果見圖6。
結語
本文解決了溫度檢測與直流無刷電機的轉速智能控制問題,實現了阿里云上傳電機的各項參數。
參考文獻:
[1]董勝,浦珊珊,馬東吉.應用型本科電子系統設計課程教學改革與實踐[J].教育教學論壇,2020(03):100101.
[2]Terasic"Technologies.DE270"User"manual[EB/OL].(20100930).https://www.terasic.com.tw/cgibin/page/archive.pl?Language=Englishamp;CategoryNo=183No=226amp;PartNo=4#contents.
[3]黑金動力社區.NIOSII那些事兒Qsys版[EB/OL].https://www.docin.com/p409846996.html.
[4]Maxim"Integrated"Products,"Inc.DS18B20"Programmable"Resolution1Wire"Digital"Thermometer[EB/OL].https://www.analog.com/media/en/technicaldocumentation/datasheets/DS18B20.pdf.
[5]GUANGDONG"AOLONG"TECHNOLOGY"Co.,"Ltd..R2418微型直流無刷馬達.[EB/OL].https://detail.1688.com/offer/720151755730.html?_t=1735803194136amp;spm=a2615.7691456.co_0_0_wangpu_score_0_0_0_0_1_0_0000_0.0.
[6]張安東.基于STM32單片機的超聲波測距系統設計與實現[J].銅陵職業技術學院學報,2020(3):5153.
[7]時玲瓏,孫姍姍.以單片機為核心的超聲波測距系統[J].福建電腦,2022,38(2):2932.
[8]深圳市機芯智能有限公司.SU03T離線語音模組技術開發手冊[EB/OL].https://help.aimachip.com/docs/offline_su03t/su_03t_kfb.
[9]馬媛,基于ESP8266的無線通信系統設計[J].電子測試,2022,36(05):4446.
[10]張勇.嵌入式操作系統原理與面向任務程序設計[M].西安:西安電子科技大學出版社,2010:102227.
項目來源:北華大學校級教育教學改革研究課題“產教結合模式下電子系統設計課程教學改革研究”(項目編號:ZJ1241853);吉林省教育科學“十四五”規劃重點課題:新工科背景下“以能力為導向”的電子信息工程類專業課程體系構建新模式探索(編號:ZD22091)
作者簡介:董勝(1972—"),男,漢族,黑龍江嫩江人,儀器儀表工程碩士,副教授,研究方向:信號采集與處理。