張凱
摘 要:項(xiàng)目以STM32單片機(jī)為基礎(chǔ),設(shè)計(jì)了一套無線傳輸系統(tǒng)。系統(tǒng)選用STM32F1系列單片機(jī)作為平臺,利用其豐富的內(nèi)部資源及外部設(shè)備,通過ST-Link仿真器進(jìn)行在線調(diào)試,設(shè)計(jì)并開發(fā)應(yīng)用功能,最終以HC-05藍(lán)牙傳輸方式實(shí)現(xiàn)無線通信。實(shí)驗(yàn)表明,基于STM32的無線通信系統(tǒng)準(zhǔn)確度高、延時(shí)小、操作方便,能夠滿足多種電子設(shè)備的無線功能需求。
關(guān)鍵詞:無線傳輸;單片機(jī);藍(lán)牙;傳感器;C語言;ST-Link
中圖分類號:TP393;TM910 文獻(xiàn)標(biāo)識碼:A 文章編號:2095-1302(2020)03-00-02
0 引 言
STM32F1系列單片機(jī)具有豐富的內(nèi)部資源及外部設(shè)備,綜合考慮性價(jià)比等因素,設(shè)計(jì)了一套基于STM32單片機(jī)的無線傳輸系統(tǒng)。
1 項(xiàng)目設(shè)計(jì)
系統(tǒng)整體結(jié)構(gòu)如圖1所示。項(xiàng)目設(shè)計(jì)圍繞單片機(jī)展開,兩個(gè)單片機(jī)分別連接無線發(fā)射器與接收器,當(dāng)發(fā)射器發(fā)送信號時(shí),接收器可在第一時(shí)間捕獲信號并交由下位機(jī)處理,在紅外探頭檢測到信號的同時(shí),使用者也可通過按鍵中斷的形式控制發(fā)射器發(fā)送信號。經(jīng)HC-05藍(lán)牙傳輸模塊將信息傳輸?shù)絾纹瑱C(jī),通過STM32將信息顯示在觸摸屏上。
2 熱釋電傳感器的電路分析及設(shè)計(jì)
2.1 單片機(jī)
STM32是系統(tǒng)的核心,設(shè)計(jì)中應(yīng)首先保障單片機(jī)的正常工作,再考慮系統(tǒng)功能的實(shí)現(xiàn)。STM32由電源、接地、復(fù)位以及時(shí)鐘電路等組成,復(fù)位及時(shí)鐘電路如圖2所示。
單片機(jī)說明:
(1)接地端和電源端為STM32提供5 V工作電壓;
(2)復(fù)位電路:在STM32F1系列單片機(jī)中,有軟復(fù)位、按鍵復(fù)位及存儲復(fù)位三種方式,本次設(shè)計(jì)采用按鍵復(fù)位方式;
(3)時(shí)鐘電路:STM32F1系列單片機(jī)包含五個(gè)時(shí)鐘信號,本設(shè)計(jì)中,信號采集采用外部高速時(shí)鐘信號。
2.2 紅外熱釋電傳感器指示燈模塊
紅外熱釋電傳感器將檢測到的信號轉(zhuǎn)換為電信號后傳輸?shù)絾纹瑱C(jī)中的P1.3口。3個(gè)不同的信號燈分別由P2.0~P2.2控制。紅色燈表示無論以什么方式觸發(fā)都會進(jìn)行屏幕顯示(手動按鍵觸發(fā)或紅外熱釋電觸發(fā)),大黃燈表示紅外探頭檢測范圍內(nèi)是否存在觸發(fā)物(燈亮表示紅外探頭檢測到信號;燈滅表示未檢測到信號),小黃燈是系統(tǒng)指示燈,系統(tǒng)預(yù)置是按下復(fù)位按鍵后系統(tǒng)將進(jìn)入預(yù)置狀態(tài),此狀態(tài)下預(yù)置燈開始閃爍,20 s閃爍結(jié)束后系統(tǒng)進(jìn)入信號采集狀態(tài),即燈滅后系統(tǒng)開始正常工作進(jìn)行信號捕獲,此時(shí)如果捕獲到信號,無線發(fā)射器將發(fā)送一個(gè)觸發(fā)信號,等待無線接收端接收后在屏幕上顯示。紅外熱釋電傳感器指示燈原理如圖3所示。
圖中EA引腳輸出高電平,當(dāng)P2.0~P2.2的端口輸出低電平時(shí)指示燈亮,三個(gè)指示燈分別有三個(gè)電阻,以防止電量過大導(dǎo)致燈滅。燈亮或滅的時(shí)間由內(nèi)部軟件程序控制。
3 HC-05藍(lán)牙傳輸模塊
HC-05藍(lán)牙傳輸模塊可用于短距離的交互通信,其結(jié)構(gòu)簡單、成本較低、操作性強(qiáng),可廣泛應(yīng)用于無線通信領(lǐng)域。
引腳說明:
RXD:接收端;
TXD:發(fā)送端;
AT:設(shè)置工作模式(自動連接或命令回應(yīng));
VCC:模塊供電正極(5 V);
GND:模塊供電負(fù)極;
EN:使能端,需要進(jìn)入AT模式(命令回應(yīng))時(shí)接
3.3 V電壓。
引腳連接如圖4所示。
按下模塊開關(guān),指示燈慢閃(1 s亮1次),進(jìn)入AT模式。模塊默認(rèn)波特率為9 600,默認(rèn)密碼為1234,默認(rèn)名稱HC-05,AT+NAME=“XXXXX”(修改藍(lán)牙名稱),AT+PSWD=1234(藍(lán)牙密碼為1234)。
模塊指示燈說明:
(1)模塊上電,將KEY接高電平,此時(shí)指示燈慢閃
(1 s亮1次),模塊進(jìn)入AT狀態(tài),此時(shí)波特率固定為
38 400;
(2)模塊上電后,將KEY懸空或接地,此時(shí)指示燈快閃
(1 s 2次),表示可進(jìn)行配對操作;
(3)模塊配對成功后,STA雙閃(1次閃2下,2 s閃1次)。
若單片機(jī)燒寫的波特率與藍(lán)牙模塊設(shè)置的波特率不同,則無法通信。
4 軟件設(shè)計(jì)
軟件部分采用C語言編寫,一方面完成區(qū)域的紅外檢測,獲取電信號并由無線發(fā)射器發(fā)出,同時(shí)以中斷方式添加按鍵復(fù)位功能;另一方面,通過對STM32管腳、時(shí)鐘、外設(shè)的配置,實(shí)現(xiàn)對觸屏的有效控制并正確顯示。主程序如下:
#include
#define uchar unsigned char
#define uint? unsigned int
sbit beep? = P2^3;
sbit red? ?= P2^2;
sbit green = P2^1;
sbit yellow = P2^0;
sbit hw? ? = P1^3;
bit flag_ms = 0;
uchar flag_alarm ;
uchar flag_bufang ;
uchar flag_bufang_en ;
uint? flag_value;
void main()
{
time_init();
beep = 0;
delay_ms(200);
P0 = P1 = P2 = P3 = 0xff;
while(1)
{
key();
yellow = ~hw;
if(key_can < 10)
{
key_with();
}
if(flag_ms == 1)
{
flag_ms = 0;
hongwai_dis();
}
}
}
5 結(jié) 語
本次設(shè)計(jì)將嚴(yán)格按照工程要求,制定完整的計(jì)劃和標(biāo)準(zhǔn),確保所用開發(fā)板正常工作,并在此基礎(chǔ)上完成無線通信功能。無線通信的主要任務(wù)是通過無線發(fā)射器發(fā)送紅外捕獲的信號,在近距離范圍內(nèi),無線接收器將接收的信號交由STM32處理并控制屏幕顯示信息,實(shí)現(xiàn)信息的無線傳輸。
隨著通信技術(shù)被廣泛應(yīng)用于國防、科研、生產(chǎn)等領(lǐng)域,對通信方式的要求也向無線、高效化方向發(fā)展,尤其在電子應(yīng)用方面,無線傳輸有著更為重要的意義。
參 考 文 獻(xiàn)
[1]俞海珍,馮浩.電磁兼容技術(shù)及其在PCB設(shè)計(jì)中的應(yīng)用[J].電子機(jī)械工程,2004(2):1-3.
[2]劉潔.多模式開關(guān)電源控制器設(shè)計(jì)[D].西安:西安科技大學(xué),2013.
[3]劉明雨.多級電壓電流混合補(bǔ)償?shù)母欕娫囱芯縖D].哈爾濱:哈爾濱工業(yè)大學(xué),2012.
[4]焦喜香,敬嵐,喬為民,等.基于CPLD和ATMEGAL128的數(shù)字電源系統(tǒng)的設(shè)計(jì)[J].核電子學(xué)與探測技術(shù),2010(1):71-74.
[5]邵聯(lián)合,黃桂梅.直流開關(guān)穩(wěn)壓電源的設(shè)計(jì)[J].輕工科技,2014
(3):42-43.
[6]鄒建華.淺析通信電源維護(hù)與管理的問題[J].通訊世界,2015(9):52-53.
[7]鄭英蘭.低電壓大電流開關(guān)電源的設(shè)計(jì)[J].儀表技術(shù)與傳感器,2010(9):63-64.
[8]尹繼武,付奎.基于STM32的生理參數(shù)無線監(jiān)測系統(tǒng)設(shè)計(jì)[J].陜西理工大學(xué)學(xué)報(bào)(自然科學(xué)版),2019(5):16-20.
[9]吳敏.基于STM32的無線心電監(jiān)測系統(tǒng)的設(shè)計(jì)[J].東莞理工學(xué)院學(xué)報(bào),2018(1):41-44.
[10]艾紅朝,漆為民.基于STM32的智能家居操控系統(tǒng)[J].中國科技信息,2018(3):85-87.