新型消防車的研究,新型,消防車,研究,鉆研
1 引言
1.1問題的提出
國家相關(guān)部門統(tǒng)計(jì)資料顯示,我國的消防車保有量約為2.3萬輛,近年新增和更新消防車近3000輛。但我國的消防車車型結(jié)構(gòu)不盡合理,特種車比例過低,水罐消防車約占總量的70%,而特種車(除水罐、干粉、泡沫以外的車輛)僅占10%,且車型較老。
有專家預(yù)測:目前,我國消防車市場,從總體上看正處于一個高增長的階段。在未來的5年之內(nèi),這種增長的勢頭一直不會減弱。每年平均增長量會維持在2000臺左右。一方面我國的消防車有待更新,市場前景看好;另一方面國內(nèi)消防車生產(chǎn)廠家卻在產(chǎn)量小、效益少的低谷中徘徊不前。
現(xiàn)有消防車只是將少數(shù)人接救到車頂?shù)钠脚_處,或者從車壁上的云梯下到地面,這種傳統(tǒng)的解救方式有兩大缺點(diǎn),首先平臺空間有限,不足以容納太多的逃生人員,當(dāng)遇到著火樓層逃生人員多時,解救速度太慢,勢必會拖延時間,造成原本可以避免的傷亡。再者消防車高空作業(yè),逃生人員通過云梯向下攀爬,可能產(chǎn)生暈厥現(xiàn)象,不僅逃生速度慢而且安全系數(shù)小。但遇到弱勢群體時,比如老人,婦孺,殘疾人等請況,會給營救工作帶來很大困難。
經(jīng)過改裝后的消防車可以有效的解決上述問題,皮帶傳動裝置和可升降逃生電梯的應(yīng)用,不僅解決救生空間的問題,而且提高了增強(qiáng)了消防車的救援速度。因此設(shè)計(jì)了新型消防車系統(tǒng)。
1.2課題研究的意義?
本作品設(shè)計(jì)出了一種新型的消防車,在現(xiàn)有消防車的基礎(chǔ)上,設(shè)計(jì)緩沖裝置以增加消防車的救援功能。具體如下:
1. 營救部分采用皮帶傳送和電梯裝置。皮帶上固定營救箱,并箱內(nèi)安裝有保險
帶;電梯裝置類似吊籃裝置,豎直上升和下降,加快了營救人員的速度,同時電梯門設(shè)計(jì)巧妙,通過一個簡易閥門實(shí)現(xiàn)電梯的閉合和打開,大大的提高了工作效率。
2. 消防車上安裝有攝像頭,在一些特定場所消防人員難以進(jìn)入到事故現(xiàn)場,在
消防車上安裝攝像頭,不僅可以實(shí)時監(jiān)測事故現(xiàn)場的狀況,而且可以通過無線模塊實(shí)現(xiàn)對消防車的遠(yuǎn)程控制。
2 系統(tǒng)概述
2.1 系統(tǒng)功能要求
1. 設(shè)計(jì)并制作消防車的車體結(jié)構(gòu)、車輪的制作、電機(jī)的選擇安裝等;
2. 設(shè)計(jì)并制作可完成人機(jī)交互工作的控制電路板;
3. 消防車上安裝有攝像頭,在一些特定場所消防人員難以進(jìn)入到事故現(xiàn)場,不僅可以實(shí)時監(jiān)測事故現(xiàn)場的狀況,而且可以通過無線模塊實(shí)現(xiàn)對消防車的遠(yuǎn)程控制。
4. 設(shè)計(jì)控制板的程序。
2.2 系統(tǒng)組成
經(jīng)過分析系統(tǒng)功能的要求,可以將各部分功能分別由硬件完成,或硬件與軟件共同完成。
硬件部分應(yīng)該包含:底盤電機(jī)控制電路,轉(zhuǎn)盤電機(jī)和升降電機(jī)控制電路,鍵盤輸入電路,電源電路。
圖2-1 系統(tǒng)組成
軟件部分應(yīng)該實(shí)現(xiàn):鍵盤按鍵的捕捉識別,底盤電機(jī)的控制,轉(zhuǎn)盤電機(jī)和升降電機(jī)的控制,無線數(shù)據(jù)發(fā)送與接收,電腦視頻數(shù)據(jù)的顯示,得出系統(tǒng)的框圖如圖2-1所示。
3 方案論證
3.1控制器的方案論證與選擇
方案1:采用可編程邏輯器件CPLD作為控制器。CPLD可以實(shí)現(xiàn)各種復(fù)雜的邏輯功能、規(guī)模大、密度高、體積小、穩(wěn)定性高、IO資源豐富、易于進(jìn)行功能擴(kuò)展。采用并行的輸入輸出方式,提高了系統(tǒng)的處理速度,適合作為大規(guī)??刂葡到y(tǒng)的控制核心。但本系統(tǒng)不需要復(fù)雜的邏輯功能,對數(shù)據(jù)的處理速度的要求也不是非常高。且從使用及經(jīng)濟(jì)的角度考慮我們放棄了此方案。
方案2:采用凌陽公司的16位單片機(jī),它是16位控制器,具有體積小、驅(qū)動能力高、集成度高、易擴(kuò)展、可靠性高、功耗低、結(jié)構(gòu)簡單、中斷處理能力強(qiáng)等特點(diǎn)。處理速度高,尤其適用于語音處理和識別等領(lǐng)域。但是當(dāng)凌陽單片機(jī)在語音處理和辨識時,由于其占用的CPU資源較多而使得處理其它任務(wù)的速度和能力降低。
方案3:采用Atmel公司的ATmaga16單片機(jī)作為主控制器。ATmaga16是一個低功耗,高性能的8位單片機(jī),片內(nèi)含16k空間的可反復(fù)擦些100,000次的Flash只讀存儲器,具有1Kbytes的隨機(jī)存取數(shù)據(jù)存儲器(RAM),32個IO口,2個8位可編程定時計(jì)數(shù)器,1個16位可編程定時計(jì)數(shù)器,四通道PWM,內(nèi)置8路10 位ADC。且maga系列的單片機(jī)可以在線編程、調(diào)試,方便地實(shí)現(xiàn)程序的下載與整機(jī)的調(diào)試。
從各個角度考慮,方案3的可行性高。
3.2 無線通訊芯片的選擇
方案1:nRF905功能特點(diǎn):
nRF905是挪威Nordic VLSI公司推出的單片射頻收發(fā)器,工作電壓為1.9~3.6V,32引腳QSON封裝(5×5mm),工作于433/868/915MHz三個ISM(工業(yè)、科學(xué)和醫(yī)學(xué))頻道,頻道之間的轉(zhuǎn)換時間小于650us。nRF905支持多點(diǎn)間通信,最高傳輸速率可達(dá)100Kb/s,有125個頻道可供選擇,可滿足多頻及跳頻需要,主要工作參數(shù)大都可通過芯片狀態(tài)字由用戶根據(jù)需要自行配置,只需少量外圍元件便可組成射頻收發(fā)電路。nRF905沒有復(fù)雜的通信協(xié)議,它完全對用戶透明,同種產(chǎn)品之間可以自由通信。所以nRF905是業(yè)界體積最小、功耗最少、外圍元件最少的低成本射頻系統(tǒng)級芯片之一。此外,其功耗非常低,以-10dBm的輸出功率發(fā)射時電流只有11mA,工作于接收模式時的電流為12.5mA,內(nèi)建空閑模式與關(guān)機(jī)模式,易于實(shí)現(xiàn)節(jié)能。nRF905適用于無線數(shù)據(jù)通信、無線報(bào)警及安全系統(tǒng)、無線開鎖、無線監(jiān)測、家庭自動化和玩具等諸多領(lǐng)域。
方案2:也可選用nRF2401以及其他收發(fā)芯片,但它們有的需要外圍元件過多,有的協(xié)議復(fù)雜,不易實(shí)現(xiàn),有的費(fèi)用較高,增加了成本,有的傳輸距離較短。
根據(jù)以上兩種方案的比較,因此在本電路設(shè)計(jì)時采用的是nRF905芯片。
4 系統(tǒng)硬件設(shè)計(jì)
4.1單片機(jī)電路
4.1.1 AVR單片機(jī)內(nèi)部結(jié)構(gòu)
AVR單片機(jī)內(nèi)部資源非常豐富,集成了各種常用的外圍設(shè)備,主要由以下部分組成:
l 16K字節(jié)擦寫壽命 10000 次的系統(tǒng)內(nèi)可編程Flash
l 具有獨(dú)立鎖定位的可選Boot 代碼區(qū)
l 片上Boot 程序?qū)崿F(xiàn)系統(tǒng)內(nèi)編程
l 可同時讀寫操作的512字節(jié)擦寫壽命100000 次的EEPROM
l 1K字節(jié)的片內(nèi)SRAM
l 可以對鎖定位進(jìn)行編程以實(shí)現(xiàn)用戶程序的加密
l JTAG接口,標(biāo)準(zhǔn)的邊界掃描功能支持?jǐn)U展的片內(nèi)調(diào)試功能
l 通過JTAG 接口實(shí)現(xiàn)對Flash、EEPROM、熔絲位和鎖定位的編程
l 兩個具有獨(dú)立預(yù)分頻器和比較器功能的8 位定時器/ 計(jì)數(shù)器
l 一個具有預(yù)分頻器、比較功能和捕捉功能的16 位定時器/ 計(jì)數(shù)器
l 具有獨(dú)立振蕩器的實(shí)時計(jì)數(shù)器RTC
l 四通道PWM
l 8路10 位ADC
l 2個具有可編程增益(1x, 10x, 或200x)的差分通道
l 面向字節(jié)的兩線接口IIC
l 兩個可編程的串行USART
l 可工作于主機(jī)/ 從機(jī)模式的SPI 串行接口
l 具有獨(dú)立片內(nèi)振蕩器的可編程看門狗定時器TWI
l 片內(nèi)模擬比較器
l 上電復(fù)位以及可編程的掉電檢測BOD
l 片內(nèi)經(jīng)過標(biāo)定的RC 振蕩器
l 片內(nèi)/ 片外中斷源
l 6種睡眠模式: 空閑、ADC 噪聲抑制、省電、掉電、Standby 模式
l 32 個可編程的I/O 口
AVR 內(nèi)核具有豐富的指令集和32 個通用工作寄存器。所有的寄存器都直接與算邏單元(ALU) 相連接,使得一條指令可以在一個時鐘周期內(nèi)同時訪問兩個獨(dú)立的寄存器。這種結(jié)構(gòu)大大提高了代碼效率,并且具有比普通的CISC 微控制器最高至10 倍的數(shù)據(jù)吞吐率。
AVR的ATmega16 有如下特點(diǎn):16K字節(jié)的系統(tǒng)內(nèi)可編程Flash(具有同時讀寫的能力,即RWW),512 字節(jié)EEPROM,1K 字節(jié)SRAM,32 個通用I/O 口線,32 個通用工作寄存器,用于邊界掃描的JTAG 接口,支持片內(nèi)調(diào)試與編程,三個具有比較模式的靈活的定時器/ 計(jì)數(shù)器(T/C),片內(nèi)/外中斷,可編程串行USART,有起始條件檢測器的通用串行接口,8路10位具有可選差分輸入級可編程增益(TQFP 封裝) 的ADC ,具有片內(nèi)振蕩器的可編程看門狗定時器,一個SPI 串行端口,以及六個可以通過軟件進(jìn)行選擇的省電模式。 工作于空閑模式時CPU 停止工作,而USART、兩線接口、A/D 轉(zhuǎn)換器、SRAM、T/C、SPI 端口以及中斷系統(tǒng)繼續(xù)工作;掉電模式時晶體振蕩器停止振蕩,所有功能除了中斷和硬件復(fù)位之外都停止工作;在省電模式下,異步定時器繼續(xù)運(yùn)行,允許用戶保持一個時間基準(zhǔn),而其余功能模塊處于休眠狀態(tài); ADC 噪聲抑制模式時終止CPU 和除了異步定時器與ADC 以外所有I/O 模塊的工作,以降低ADC 轉(zhuǎn)換時的開關(guān)噪聲; Standby 模式下只有晶體或諧振振蕩器運(yùn)行,其余功能模塊處于休眠狀態(tài),使得器件只消耗極少的電流,同時具有快速啟動能力;擴(kuò)展Standby 模式下則允許振蕩器和異步定時器繼續(xù)工作。是以Atmel 高密度非易失性存儲器技術(shù)生產(chǎn)的。片內(nèi)ISP Flash 允許程序存儲器通過ISP 串行接口,或者通用編程器進(jìn)行編程,也可以通過運(yùn)行于AVR 內(nèi)核之中的引導(dǎo)程序進(jìn)行編程。引導(dǎo)程序可以使用任意接口將應(yīng)用程序下載到應(yīng)用Flash存儲區(qū)(ApplicationFlash Memory)。在更新應(yīng)用Flash存儲區(qū)時引導(dǎo)Flash區(qū)(Boot Flash Memory)的程序繼續(xù)運(yùn)行,實(shí)現(xiàn)了RWW 操作。 通過將8 位RISC CPU 與系統(tǒng)內(nèi)可編程的Flash 集成在一個芯片內(nèi), ATmega16 成為一個功能強(qiáng)大的單片機(jī),為本系統(tǒng)的應(yīng)用提供了靈活的解決方案。
圖4-1 單片機(jī)內(nèi)部結(jié)構(gòu)
4.1.2 AVR單片機(jī)引腳功能
圖4-2 AVR單片機(jī)引腳功能
圖4-2是AVR單片機(jī)DIP封裝的引腳圖,以下是各引腳功能說明。
VCC 數(shù)字電路的電源
GND 地
端口A(PA7..PA0) 端口A 做為A/D 轉(zhuǎn)換器的模擬輸入端。端口A 為8 位雙向I/O 口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。作為輸入使用時,若內(nèi)部上拉電阻使能,端口被外部電路拉低時將輸出電流。在復(fù)位過程中,即使系統(tǒng)時鐘還未起振,端口A 處于高阻狀態(tài)。
端口B(PB7..PB0) 端口B 為8 位雙向I/O 口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。作為輸入使用時,若內(nèi)部上拉電阻使能,端口被外部電路拉低時將輸出電流。在復(fù)位過程中,即使系統(tǒng)時鐘還未起振,端口B 處于高阻狀態(tài)。端口B 也可以用做其他不同的特殊功能。
端口C(PC7..PC0) 端口C 為8 位雙向I/O 口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。作為輸入使用時,若內(nèi)部上拉電阻使能,端口被外部電路拉低時將輸出電流。在復(fù)位過程中,即使系統(tǒng)時鐘還未起振,端口C 處于高阻狀態(tài)。如果JTAG接口使能,即使復(fù)位出現(xiàn)引腳 PC5(TDI)、 PC3(TMS)與 PC2(TCK)的上拉電阻被激活。端口C 也可以用做其他不同的特殊功能。
端口D(PD7..PD0) 端口D 為8 位雙向I/O 口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。作為輸入使用時,若內(nèi)部上拉電阻使能,則端口被外部電路拉低時將輸出電流。在復(fù)位過程中,即使系統(tǒng)時鐘還未起振,端口D 處于高阻狀態(tài)。端口D 也可以用做其他不同的特殊功能。
RESET 復(fù)位輸入引腳。持續(xù)時間超過最小門限時間的低電平將引起系統(tǒng)復(fù)位。門限時間見P36Table 15。持續(xù)時間小于門限間的脈沖不能保證可靠復(fù)位。
XTAL1 反向振蕩放大器與片內(nèi)時鐘操作電路的輸入端。
XTAL2 反向振蕩放大器的輸出端。
AVCC AVCC是端口A與A/D轉(zhuǎn)換器的電源。不使用ADC時,該引腳應(yīng)直接與VCC連接。使用ADC時應(yīng)通過一個低通濾波器與VCC 連接。
AREF A/D 的模擬基準(zhǔn)輸入引腳。
4.1.3 AVR單片機(jī)最小系統(tǒng)電路
圖4-3 AVR單片機(jī)最小系統(tǒng)電路
圖4-3是AVR單片機(jī)最小系統(tǒng)電路圖,圖中U1是AVR單片機(jī),是整個系統(tǒng)的核心控制單元,R1和C1組成單片機(jī)的復(fù)位電路,晶振XTAL,和C1,C2是單片機(jī)時鐘源的輔助電路。AVR單片機(jī)的外圍電路非常簡單,使系統(tǒng)更加的簡單,提高可靠性,降低故障率。
復(fù)位電路是為了保證單片機(jī)在正式運(yùn)行程序之前,將內(nèi)部各個功能寄存器的狀態(tài)回復(fù)到初始狀態(tài),以保證單片機(jī)按照程序設(shè)計(jì)者的意圖運(yùn)行。R1與C1構(gòu)成RC電路,在系統(tǒng)上電后,單片機(jī)復(fù)位端電壓漸漸升高,當(dāng)電壓升高到復(fù)位端RESET門限電壓0.9V時,單片機(jī)完成復(fù)位,在系統(tǒng)斷電后,C1通過復(fù)位引腳內(nèi)部電路放電,在下一次上電時又可以進(jìn)行復(fù)位過程。由于剛上電時,電路中的電容,電感的存在,電路電源的穩(wěn)定需要一定時間才能使單片機(jī)正??煽窟\(yùn)行,所以復(fù)位時間長對系統(tǒng)的可靠性有利。電路中R1選10k,C1選10uF,復(fù)位時間在10MS以上,可以可靠的對單片機(jī)進(jìn)行復(fù)位。R1,C1應(yīng)該靠近單片機(jī),與單片機(jī)的連線短些,可以減少因?yàn)橹車蓴_一起的錯誤復(fù)位動作。
使用外部晶振速度快,頻率穩(wěn)定,抗干擾強(qiáng),適合在周圍用電環(huán)境復(fù)雜,系統(tǒng)可靠性要求高的電路中。晶振XTAL,和C1,C2與單片機(jī)內(nèi)部時鐘源電路一起組成8M的時鐘頻率,供給單片機(jī)內(nèi)部使用,單片機(jī)的熔絲配置中應(yīng)該選擇使用外部晶振選項(xiàng)。晶振,校正電容C2,C3,與單片機(jī)的連線應(yīng)該越短越好,且周圍不要有大電流回路,盡量不要在晶振底部走線,晶振的金屬外殼要與地相連,可以提高時鐘電路的穩(wěn)定性和可靠性。
4.2 電源電路
圖4-4 系統(tǒng)電源電路原理
由于電機(jī)的驅(qū)動電路需要24V的工作電壓,而單片機(jī)、L298電機(jī)驅(qū)動芯片、光電耦合器等工作電壓需要5V,所以變壓器的24V輸出需要經(jīng)過穩(wěn)壓模塊穩(wěn)定到單片機(jī)的工作電壓范圍??紤]到電機(jī)驅(qū)動電路必須和單片機(jī)分開供電,這樣可以避免電機(jī)電路對單片機(jī)電路的干擾所以采取對單片機(jī)單獨(dú)供電,步進(jìn)電機(jī)和直流電機(jī)橋臂共用一個24V電源。其系統(tǒng)電源電路原理如上圖4-4所示。
4.2.1 電源電路的結(jié)構(gòu)
由變壓器出來的交流信號經(jīng)過橋式整流和電容濾波之后送給LM7805,穩(wěn)壓5V輸出,它的輸出單獨(dú)供給單片機(jī)。在三端穩(wěn)壓管的輸入輸出端與地之間連接大容量的濾波電容,使濾掉紋波的效果更好,輸出的直流電壓更穩(wěn)定。接小容量高頻電容以抑制芯片自激,輸出引腳端連接高頻電容以減小高頻噪聲,使單片機(jī)工作在一個良好的電源環(huán)境中,提高系統(tǒng)穩(wěn)定性。
4.2.2 電源芯片引腳功能
電源電路主要運(yùn)用到7805穩(wěn)壓芯片,該系列芯片技術(shù)成熟,所需的外圍器件少,性價比高,運(yùn)用的非常廣泛,其內(nèi)部原理圖如圖4-5所示。
圖4-5 7805內(nèi)部原理圖
圖4-6為7805的引腳圖
INPUT 電源輸入端,最大可達(dá)35V
GROUND 電源地
OUTPUT +8V輸出端
圖4-6 7805的引腳圖
4.3無線通訊模塊nRF905
nRF905是挪威Nordic VLSI公司推出的單片射頻收發(fā)器,工作電壓為1.9~3.6V,32引腳QSON封裝(5×5mm),工作于433/868/915MHz三個ISM(工業(yè)、科學(xué)和醫(yī)學(xué))頻道,頻道之間的轉(zhuǎn)換時間小于650us。nRF905支持多點(diǎn)間通信,最高傳輸速率可達(dá)100Kb/s,有125個頻道可供選擇,可滿足多頻及跳頻需要,主要工作參數(shù)大都可通過芯片狀態(tài)字由用戶根據(jù)需要自行配置,只需少量外圍元件便可組成射頻收發(fā)電路。nRF905沒有復(fù)雜的通信協(xié)議,它完全對用戶透明,同種產(chǎn)品之間可以自由通信。所以nRF905是業(yè)界體積最小、功耗最少、外圍元件最少的低成本射頻系統(tǒng)級芯片之一。此外,其功耗非常低,以-10dBm的輸出功率發(fā)射時電流只有11mA,工作于接收模式時的電流為12.5mA,內(nèi)建空閑模式與關(guān)機(jī)模式,易于實(shí)現(xiàn)節(jié)能。nRF905適用于無線數(shù)據(jù)通信、無線報(bào)警及安全系統(tǒng)、無線開鎖、無線監(jiān)測、家庭自動化和玩具等諸多領(lǐng)域。下面介紹nRF905的功能特性、芯片結(jié)構(gòu)、引腳定義和工作模式。
4.3.1 功能特性
1. GFSK調(diào)制收發(fā)合一。
2. ShockBurst收發(fā)模式特適用于低功耗應(yīng)用。
3. 多頻道應(yīng)用——兼容ETSI/FCC,頻道切換時間小于650us。
4. 最大輸出功率+10dBm可調(diào),接收靈敏度高達(dá)-100dBm。
5. 載波監(jiān)聽功能有效防止RF傳輸碰撞。
6. 成功收發(fā)數(shù)據(jù)包信號提示。
7. 接收數(shù)據(jù)包自動地址匹配。
8. 發(fā)送數(shù)據(jù)包自動重傳。
9. 自動生成數(shù)據(jù)包報(bào)頭及CRC校驗(yàn)碼。
10. 數(shù)據(jù)傳輸速率高達(dá)100kbps。
11. 16腳雙排接口,可直接與TTL/COMS模式MCU引腳連接。
12. 接口協(xié)議:同步串行SPI接口(可用單片機(jī)IO模擬)。
4.3.2 芯片結(jié)構(gòu)
nRF905由頻率合成器、接收解調(diào)器、功率放大器、晶體振蕩器和調(diào)制器組成,不需外加聲表濾波器,曼徹斯特編碼/解碼由片內(nèi)硬件完成,無需用戶對數(shù)據(jù)進(jìn)行曼徹斯特編碼,因此使用非常方便。它的結(jié)構(gòu)框圖如下圖4-7所示:
圖4-7 nRF905芯片結(jié)構(gòu)框圖
4.3.3 引腳定義
表4-1 nRF905引腳定義
管腳
名稱
描述
1
GND
電源地
2
VCC
系統(tǒng)電源
3
TRX_CE
使能芯片接收和發(fā)送
4
TXEN
收發(fā)狀態(tài)選擇:TXEN=’1’ 發(fā)射狀態(tài);
TXEN=’0’ 接收狀態(tài)
5
uPCLK
系統(tǒng)時鐘分頻輸出
6
PWR_UP
工作狀態(tài)控制:PWR=’1’ 正常工作狀態(tài);
PWR=’0’ 待機(jī)微功耗狀態(tài)
7
GND
電源地
8
GND
電源地
9
AM
地址匹配
10
CD
載波監(jiān)聽
11
MISO
SPI輸出,MCU由此口從RF芯片讀入數(shù)據(jù)
12
DR
接收或發(fā)送就緒
13
SCK
SPI時鐘
14
MOSI
SPI輸入,MCU由此口向RF芯片寫入數(shù)據(jù)
15
GND
電源地
16
CSN
SPI使能,低激活
4.3.4 工作模式
nRF905有兩種工作模式和兩種節(jié)能模式。兩種工作模式分別是ShockBurstTM接收模式和ShockBurstTM發(fā)送模式,兩種節(jié)能模式分別是關(guān)機(jī)模式和空閑模式。nRF905的工作模式由TRX_CE、TX_EN和PWR_UP三個引腳決定,詳見下表4-2所示:
表4-2 nRF905工作模式
PWR_UP
TRX_CE
TX_EN
工作模式
0
×
×
關(guān)機(jī)模式
1
0
×
空閑模式
1
1
0
射頻接收模式
1
1
1
射頻發(fā)送模式
ShockBurstTM模式:
與射頻數(shù)據(jù)包有關(guān)的高速信號處理都在nRF905片內(nèi)進(jìn)行,數(shù)據(jù)速率由微控制器配置的SPI接口決定,數(shù)據(jù)在微控制器中低速處理,但在nRF905中高速發(fā)送,因此中間有很長時間的空閑,這很有利于節(jié)能。由于nRF905工作于ShockBurstTM模式,因此使用低速的微控制器也能得到很高的射頻數(shù)據(jù)發(fā)射速率。在ShockBurstTM接收模式下,當(dāng)一個包含正確地址和數(shù)據(jù)的數(shù)據(jù)包被接收到后,地址匹配(AM)和數(shù)據(jù)準(zhǔn)備好(DR)兩引腳通知微控制器。在ShockBurstTM發(fā)送模式,nRF905自動產(chǎn)生字頭和CRC校驗(yàn)碼,當(dāng)發(fā)送過程完成后,數(shù)據(jù)準(zhǔn)備好引腳通知微處理器數(shù)據(jù)發(fā)射完畢。由以上分析可知,nRF905的ShockBurstTM收發(fā)模式有利于節(jié)約存儲器和微控制器資源,同時也減小了編寫程序的時間。下面具體詳細(xì)分析nRF905的發(fā)送流程和接收流程。
1. 發(fā)送流程
典型的nRF905發(fā)送流程分以下幾步:
A.?當(dāng)微控制器有數(shù)據(jù)要發(fā)送時,通過SPI接口,按時序把接收機(jī)的地址和要發(fā)送的數(shù)據(jù)送傳給nRF905,SPI接口的速率在通信協(xié)議和器件配置時確定;
B.?微控制器置高TRX_CE和TX_EN,激發(fā)nRF905的ShockBurstTM發(fā)送模式;
C.?nRF905的ShockBurstTM發(fā)送:
射頻寄存器自動開啟;
數(shù)據(jù)打包(加字頭和CRC校驗(yàn)碼);
發(fā)送數(shù)據(jù)包;
當(dāng)數(shù)據(jù)發(fā)送完成,數(shù)據(jù)準(zhǔn)備好引腳被置高;
D.?AUTO_RETRAN被置高,nRF905不斷重發(fā),直到TRX_CE被置低;
E.?當(dāng)TRX_CE被置低,nRF905發(fā)送過程完成,自動進(jìn)入空閑模式。
ShockBurstTM工作模式保證,一旦發(fā)送數(shù)據(jù)的過程開始,無論TRX_EN和TX_EN引腳是高或低,發(fā)送過程都會被處理完。只有在前一個數(shù)據(jù)包被發(fā)送完畢,nRF905才能接受下一個發(fā)送數(shù)據(jù)包。
2. 接收流程
A.?當(dāng)TRX_CE為高、TX_EN為低時,nRF905進(jìn)入ShockBurstTM接收模式;
B.?650us后,nRF905不斷監(jiān)測,等待接收數(shù)據(jù);
C.?當(dāng)nRF905檢測到同一頻段的載波時,載波檢測引腳被置高;
D.?當(dāng)接收到一個相匹配的地址,地址匹配引腳被置高;
E.?當(dāng)一個正確的數(shù)據(jù)包接收完畢,nRF905自動移去字頭、地址和CRC校驗(yàn)位,然后把數(shù)據(jù)準(zhǔn)備好引腳置高;
F.?微控制器把TRX_CE置低,nRF905進(jìn)入空閑模式;
G.?微控制器通過SPI口,以一定的速率把數(shù)據(jù)移到微控制器內(nèi);
H.?當(dāng)所有的數(shù)據(jù)接收完畢,nRF905把數(shù)據(jù)準(zhǔn)備好引腳和地址匹配引腳置低;
I.?nRF905此時可以進(jìn)入ShockBurstTM接收模式、ShockBurstTM發(fā)送模式或關(guān)機(jī)模式。
當(dāng)正在接收一個數(shù)據(jù)包時,TRX_CE或TX_EN引腳的狀態(tài)發(fā)生改變,nRF905立即把其工作模式改變,數(shù)據(jù)包則丟失。當(dāng)微處理器接到地址匹配引腳的信號之后,其就知道nRF905正在接收數(shù)據(jù)包,其可以決定是讓nRF905繼續(xù)接收該數(shù)據(jù)包還是進(jìn)入另一個工作模式。
3. 節(jié)能模式
nRF905的節(jié)能模式包括關(guān)機(jī)模式和節(jié)能模式。
在關(guān)機(jī)模式,nRF905的工作電流最小,一般為2.5uA。進(jìn)入關(guān)機(jī)模式后,nRF905保持配置字中的內(nèi)容,但不會接收或發(fā)送任何數(shù)據(jù)。
空閑模式有利于減小工作電流,其從空閑模式到發(fā)送模式或接收模式的啟動時間也比較短。在空閑模式下,nRF905內(nèi)部的部分晶體振蕩器處于工作狀態(tài)。nRF905在空閑模式下的工作電流跟外部晶體振蕩器的頻率有關(guān)。
4.4 直流電機(jī)驅(qū)動芯片L298N
L298N是ST公司生產(chǎn)的一種高電壓、大電流電機(jī)驅(qū)動芯片。該芯片的主要特點(diǎn)是:工作電壓高,最高工作電壓可達(dá)46V;輸出電流大,瞬間峰值電流可達(dá)3A,持續(xù)工作電流為2A;內(nèi)含兩個H橋的高電壓大電流全橋式驅(qū)動器,可以用來驅(qū)動直流電動機(jī)和步進(jìn)電動機(jī)、繼電器、線圈等感性負(fù)載;采用標(biāo)準(zhǔn)TTL邏輯電平信號控制;具有兩個使能控制端,在不受輸入信號影響的情況下允許或禁止器件工作;有一個邏輯電源輸入端,使內(nèi)部邏輯電路部分在低電壓下工作;可以外接檢測電阻,將變化量反饋給控制電路。其管腳圖和實(shí)物圖分別如圖4-8和圖4-9所示,管腳功能如表4-3所示。
圖4-8 L298N管腳圖 圖4-9 L298N實(shí)物圖
管腳
符 號
功 能
1
15
SENSING A
SENSING B
此兩端與地連接電流檢測電阻,并向驅(qū)動芯片反饋檢測到的信號
2
3
OUT 1
OUT 2
此兩腳是全橋式驅(qū)動器A的兩個輸出端,用來連接負(fù)載
4
Vs
電機(jī)驅(qū)動電源輸入端
5
7
IN 1
IN2
輸入標(biāo)準(zhǔn)的TTL邏輯電平信號,用來控制全橋式驅(qū)動器A的開關(guān)
6
11
ENABLE A
ENABLE B
使能控制端.輸入標(biāo)準(zhǔn)TTL邏輯電平信號;低電平時全橋式驅(qū)動器禁止工作。
8
GND
接地端,芯片本身的散熱片與8腳相通
9
Vss
邏輯控制部分的電源輸人端口
10
12
IN 3
IN 4
輸入標(biāo)準(zhǔn)的TTL邏輯電平信號,用來控制全橋式驅(qū)動器B的開關(guān)
13
14
OUT 3
OUT 4
此兩腳是全橋式驅(qū)動器B的兩個輸出端,用來連接負(fù)載
表4-3 L298N管腳功能
圖4-10 直流電機(jī)驅(qū)動電路
4.5 步進(jìn)電機(jī)驅(qū)動器
步進(jìn)電機(jī)的驅(qū)動采用專用的驅(qū)動電路模塊,使用模塊電路可以加快產(chǎn)品開發(fā)速度,使系統(tǒng)結(jié)構(gòu)簡單,穩(wěn)定,可靠。且單片機(jī)只需2個接口就可以完成步進(jìn)電機(jī)的方向和步進(jìn)控制。所選用的驅(qū)動器型號為森創(chuàng)公司的SH-20403,它的主要參數(shù)如下:
l 10V~40V直流供電
l H橋雙極恒相流驅(qū)動
l 最大3A的8種輸出電流可選
l 最大 64細(xì)分的7種細(xì)分模式可選
l 輸入信號光電隔離
l 標(biāo)準(zhǔn)共陽單脈沖接口
l 脫機(jī)保持功能
5 系統(tǒng)的軟件設(shè)計(jì)
軟件部分主要完成對鍵盤的分析及無線數(shù)據(jù)的發(fā)送與接收,來控制消防車救援。包括底盤電機(jī)(步進(jìn)電機(jī))的正反向、轉(zhuǎn)盤的轉(zhuǎn)動(直流電機(jī))和救援箱體的升降等功能。
5.1直流電機(jī)控制子程序
直流電機(jī)控制子程序完成電機(jī)的救援箱體的升降工程,其執(zhí)行流程如圖5-1所示。
圖5-1 直流電機(jī)控制流程圖
5.2鍵盤子程序
鍵盤程序完成鍵盤的掃描,除抖動,鍵碼保存的功能,其執(zhí)行流程如圖5-2所示。
圖5-2鍵盤識別流程圖
5.3 無線通訊模塊驅(qū)動程序
5.3.1 器件配置
所有配置字都是通過SPI接口送給nRF905。SIP接口的工作方式可通過SPI指令進(jìn)行設(shè)置。當(dāng)nRF905處于空閑模式或關(guān)機(jī)模式時,SPI接口可以保持在工作狀態(tài)。
1. SPI接口配置
SPI接口由狀態(tài)寄存器、射頻配置寄存器、發(fā)送地址寄存器、發(fā)送數(shù)據(jù)寄存器和接收數(shù)據(jù)寄存器5個寄存器組成。狀態(tài)寄存器包含數(shù)據(jù)準(zhǔn)備好引腳狀態(tài)信息和地址匹配引腳狀態(tài)信息;射頻配置寄存器包含收發(fā)器配置信息,如頻率和輸出功能等;發(fā)送地址寄存器包含接收機(jī)的地址和數(shù)據(jù)的字節(jié)數(shù);發(fā)送數(shù)據(jù)寄存器包含待發(fā)送的數(shù)據(jù)包的信息,如字節(jié)數(shù)等;接收數(shù)據(jù)寄存器包含要接收的數(shù)據(jù)的字節(jié)數(shù)等信息。
2. 射頻配置
射頻寄存器的各位的長度是固定的。然而,在ShockBurstTM收發(fā)過程中,TX_PAYLOAD、RX_PAYLOAD、TX_ADDRESS和RX_ADDRESS 4個寄存器使用字節(jié)數(shù)由配置字決定。nRF905進(jìn)入關(guān)機(jī)模式或空閑模式時,寄存器中的內(nèi)容保持不變。
5.3.2 程序流程圖
圖5-3 nRF905數(shù)據(jù)發(fā)送流程圖
典型ShockBurst TX:
1. 當(dāng)應(yīng)用MCU有遙控?cái)?shù)據(jù)節(jié)點(diǎn)時,接收節(jié)點(diǎn)的地址(TX-address)和有效數(shù)據(jù)(TX-payload)通過SPI接口傳送給nRF905。應(yīng)用協(xié)議或MCU設(shè)置接口速度。
2. MCU設(shè)置TRX_CE,TX_EN為高來激活nRF905 ShockBurst傳輸。
3. nRF905 ShockBurst:無線系統(tǒng)自動上電數(shù)據(jù)包完成(加加導(dǎo)碼和CRC校驗(yàn)碼)數(shù)據(jù)包發(fā)送(100kbps,GFSK,曼切斯特編碼)。
4. 如果AUTO_RETRAN被設(shè)置為高,nRF905將連續(xù)地發(fā)送數(shù)據(jù)包,直到TRX_CE被設(shè)置為低。
5. 當(dāng)TRX_CE被設(shè)置為低時,nRF905結(jié)束數(shù)據(jù)傳傳輸并將自己設(shè)置成standby模式。
ShockBurst工作模式確保一個傳輸包發(fā)送開始后,總是能夠完成,不管在發(fā)送過程中TRX_CE,TX_EN如何被設(shè)置。當(dāng)發(fā)送結(jié)束后,新的模式被激活。
圖5-4 nRF905數(shù)據(jù)接收流程圖
典型ShockBurst RX:
1. 通過設(shè)置TRX_CE高,TX_EN低來選擇ShockBurst RX模式。
2. 650us以后,nRF905監(jiān)測控制的信息。
3. 當(dāng)nFR905發(fā)現(xiàn)和接收頻率相同的載波時,載波檢測CD被置高。
4. 當(dāng)nFR905 接收導(dǎo)有效的地址時,地址匹配AM被置高。
5. 當(dāng)nFR905 接收到有效的數(shù)據(jù)包(CRC校驗(yàn)正確)時,nFR905去掉前導(dǎo)碼,地址和CRC位,數(shù)據(jù)準(zhǔn)備就緒DR被置高。
6. MCU設(shè)置TRX_CE低,進(jìn)入standby模式(低電流模式)。
7. MCU可以以合適的速率通過SPI接口讀出有效數(shù)據(jù)。
8. 當(dāng)所有的有效數(shù)據(jù)被讀出后,nFR905將AM和DR置低。
9. nFR905 將準(zhǔn)備進(jìn)入ShockBurst RX,ShockBurst TX或Powerdown模式。
5.4步進(jìn)電機(jī)控制子程序
步進(jìn)電機(jī)控制子程序完成電機(jī)方向控制,步數(shù)控制,其執(zhí)行流程如圖5-5所示。
圖5-5 步進(jìn)電機(jī)控制流程圖
5.5主程序流程圖
主程序完成各模塊程序的調(diào)度,其中消防車主控制程序最關(guān)鍵,其執(zhí)行流程如下圖5-6所示。
圖5-6 主程序
6 系統(tǒng)調(diào)試
按下電源開關(guān),按下發(fā)射控制端的“前進(jìn)”按鈕,新型消防車會執(zhí)行前進(jìn)的動作,一直按著,消防車一直前進(jìn),松開按鈕,消防車停止;按下“后退”的按鈕,新型消防車會執(zhí)行后進(jìn)的動作,一直按著,消防車一直后進(jìn),松開按鈕,消防車停止;按下“左轉(zhuǎn)”的按鈕,新型消防車會執(zhí)行左轉(zhuǎn)的動作,一直按著,消防車一直左轉(zhuǎn),松開按鈕,消防車停止;按下“右轉(zhuǎn)”的按鈕,新型消防車會執(zhí)行右轉(zhuǎn)的動作,一直按著,消防車一直右轉(zhuǎn),松開按鈕,消防車停止。
按下地盤“順時針轉(zhuǎn)動”的按鈕,消防車的地盤會執(zhí)行順時轉(zhuǎn)動的動作,一直按著,消防車的地盤一直順時針轉(zhuǎn),松開按鈕,地盤停止轉(zhuǎn)動;按下地盤“逆時針轉(zhuǎn)動”的按鈕,消防車的地盤會執(zhí)行逆時針轉(zhuǎn)動的動作,一直按著,消防車的地盤一直順時針轉(zhuǎn)動,松開按鈕,地盤停止轉(zhuǎn)動。
按下吊籃“上升”的按鈕,消防車會執(zhí)行上升的動作,一直按著,吊籃一直上升,直到到達(dá)最高點(diǎn),松開按鈕,吊籃停止上升;按下吊籃“下降”的按鈕,新型消防車會執(zhí)行下降的動作,一直按著,消防車一直下降,直到安全下降到地面,松開按鈕,吊籃停止下降。
按下皮帶傳送“上升”的按鈕,傳動帶會一直執(zhí)行上升的動作;按下皮帶傳送“停止”的按鈕,傳送帶會執(zhí)行停止的動作。
結(jié) 論
經(jīng)過各項(xiàng)功能的調(diào)試,不斷的修正,系統(tǒng)以達(dá)到良好效果,各項(xiàng)指標(biāo)均已達(dá)到目標(biāo)要求,
1 該系統(tǒng)結(jié)構(gòu)簡單,成本低,控制精確,操作簡單。
2 該系統(tǒng)最后通過實(shí)際使用,系統(tǒng)穩(wěn)定,沒有出現(xiàn)程序跑亂的現(xiàn)象,符合其最終的標(biāo)準(zhǔn)。
3 系統(tǒng)的某些指標(biāo)已超過了設(shè)計(jì)要求,達(dá)到了良好效果。
這次畢業(yè)設(shè)計(jì),從開始設(shè)計(jì)到設(shè)計(jì)的完成,現(xiàn)場調(diào)試,都讓我感覺收獲挺多,這不僅是理論上的升華,還有實(shí)踐中的鍛煉。在系統(tǒng)調(diào)試過程中,由于每個電路板出現(xiàn)的問題都不一樣,因此,做完這個畢業(yè)設(shè)計(jì)后,不僅提高了我的獨(dú)立分析問題能力,而且還加強(qiáng)了實(shí)際解決問題的能力。
參考文獻(xiàn)
[1] 童詩白主編.模擬電子技術(shù)基礎(chǔ).北京:高等教育出版社,1998.
[2] 陳國呈.PWM調(diào)速技術(shù).北京:機(jī)械工業(yè)出版社,1999.
[3] 劉瑞新,趙全利等.單片機(jī)原理及應(yīng)用教程.北京:機(jī)械工業(yè)出版社,2003.
[4] 梅麗風(fēng),王艷秋等.單片機(jī)原理及接口技術(shù).北京:清華大學(xué)出版社,2004.
[5] 李廣弟,朱月秀等.單片機(jī)基礎(chǔ).北京:北京航空航天大學(xué)出版社,2001.
[6] 徐愛鈞.8051單片機(jī)實(shí)踐教程,北京:電子工業(yè)出版社,2001年.
[7] 康華光,鄒壽彬.電子技術(shù)基礎(chǔ)(數(shù)字部分),北京:高等教育出版社,2003.
[8] 吳國經(jīng).單片機(jī)應(yīng)用技術(shù),北京:中國電力出版社,2004.
[9] 吳運(yùn)昌.模擬集成電路原理與應(yīng)用.廣東:華南理工大學(xué)出版社,2001.
[10] 吳金戎.8051單片機(jī)實(shí)踐與應(yīng)用.北京:清華大學(xué)出版社,2002.
[11] 李序葆,趙永健.電力電子器件及其應(yīng)用.北京:機(jī)械工業(yè)出版社,2003.
[12] 王志良.電力電子新器件及其應(yīng)用技術(shù).北京:國防工業(yè)出版社,1995.
[13]石東海.單片機(jī)數(shù)據(jù)通信技術(shù)從入門到精通.西安電子科技大學(xué)出版社,2001:201~202.
[14]楊波等.移動IP和自組網(wǎng)的集成.計(jì)算機(jī)系統(tǒng)應(yīng)用,2004年6月:125~145.
[15]無線龍.無線通信和無線網(wǎng)絡(luò)的入門與實(shí)戰(zhàn).成都:成都無線龍通訊科技有限公司,2005:99~121.
[16]Ray S, Carrathers J.B, Starobinski D. RTS/CTS induced congestion in ad hoc wireless LANS[J], Wireless Communications and Networking, 2003:635~641.
[17]Shugong Xu, Tarek Saadow i. Does IEEE 802.11 MAC Potocol Work Well in Multihop Wireless Ad Hoc Networks[J]. IEEE Communications Magazine June 2001, 39(6) : 130~137.
[18]H. Frey. “Scalable Geographic Routing Algorithms for Wireless Ad Hoc Networks,” IEEE Network Mag., July/Aug. 2004:18~22
附錄1:原理圖
附錄2:程序源代碼:
#include
#include //可以嵌套
#include //不可嵌套,執(zhí)行時總中斷被關(guān)閉
#include "UART16.h"
#define SCK_1 PORTB|= _BV(1)
#define SCK_0 PORTB&=~_BV(1)
#define RCK_1 PORTB|= _BV(0)
#define RCK_0 PORTB&=~_BV(0)
#define SER_1 PORTB|= _BV(2)
#define SER_0 PORTB&=~_BV(2)
#define CLK_1 PORTA|= _BV(0)
#define CLK_0 PORTA&=~_BV(0)
#define DIN_1 PORTA|= _BV(1)
#define DIN_0 PORTA&=~_BV(1)
#define CS_1 PORTA|= _BV(2)
#define CS_0 PORTA&=~_BV(2)
/*-----------------------------------------------------------------------------------*/
uint zg[16]={0x8000,0x4000,0x2000,0x1000,0x0800,0x0400,0x0200,0x0100,0x0080,
0x0040,0x0020,0x0010,0x0008,0x0004,0x0002,0x0001};
uin zd[16]={0x7fff,0xbfff,0xdfff,0xefff,0xf7ff,0xfbff,0xfdff,0xfeff,0xff7f,0xffbf,0xffdf,
0xffef,0xfff7,0xfffb,0xfffd,0xfffe}; //模擬板吸合
uint dfs[4]={0x0000,0x0000,0x0000,0x0000};//緩存的數(shù)據(jù),帶發(fā)送的
/*-----------------------------------------*/
uchar cs=0,ss=0;//中斷函數(shù)中的次數(shù)
/*----------------------------------------------------*/
void delay(uint n)
{
uint i,j;
for(i=0;i=2;n--)
{
dat=dfs[n-2];
for(i=0;i<16;i++)
{
SCK_0;
if(dat&0x0001) SER_1;
else SER_0;
SCK_1;
dat=dat>>1;
}
}
RCK_1;asm("nop");RCK_0;
}
/*--------判斷跳轉(zhuǎn)-------------------------*/
void pdtz(void)
{
uchar pd,dz;
pd=js[0]&0xc0;//狀態(tài)
dz=js[1];
switch(dz)
{
case 0x01:{
switch(pd)
{
case 0x00: dfs[0]&=zd[dz-1];dfs[0]&=zd[dz];clear_5618(dz);Txshuju();break;
case 0x40: dfs[0]&=zd[dz]; dfs[0]|=zg[dz-1];Txshuju();break;//01 開路
case 0x80: dfs[0]&=zd[dz-1];dfs[0]&=zd[dz];Txshuju();break;
case 0Xc0: dfs[0]|=zg[dz]; dfs[0]|=zg[dz-1];Txshuju();TLC5618(dz);break;//
}
};break;
case 0x03:{
switch(pd)
{
case 0x00: dfs[0]&=zd[dz-1];dfs[0]&=zd[dz];clear_5618(dz);Txshuju();break;
case 0x40: dfs[0]&=zd[dz]; dfs[0]|=zg[dz-1];Txshuju();break;//01
case 0x80: dfs[0]&=zd[dz-1];dfs[0]&=zd[dz];Txshuju();break;
case 0Xc0: dfs[0]|=zg[dz]; dfs[0]|=zg[dz-1];Txshuju();TLC5618(dz);break;//
}
};break;
case 0x05:{
switch(pd)
{
case 0x00: dfs[0]&=zd[dz-1];dfs[0]&=zd[dz];clear_5618(dz);Txshuju();break;
case 0x40: dfs[0]&=zd[dz]; dfs[0]|=zg[dz-1];Txshuju();break;//01 開路
case 0x80: dfs[0]&=zd[dz-1];dfs[0]&=zd[dz];Txshuju();break;
case 0Xc0: dfs[0]|=zg[dz]; dfs[0]|=zg[dz-1];Txshuju();TLC5618(dz);break;//模擬電壓轉(zhuǎn)
}
};break;
case 0x07:{
switch(pd)
{
case 0x00: dfs[0]&=zd[dz-1];dfs[0]&=zd[dz];clear_5618(dz);Txshuju();break;
case 0x40: dfs[0]&=zd[dz]; dfs[0]|=zg[dz-1];Txshuju();break;//01 開路
case 0x80: dfs[0]&=zd[dz-1];dfs[0]&=zd[dz];Txshuju();break;
case 0Xc0: dfs[0]|=zg[dz]; dfs[0]|=zg[dz-1];Txshuju();TLC5618(dz);break;//模擬電壓轉(zhuǎn)
}
};break;
case 0x09:{
switch(pd)
{
case 0x00: dfs[0]&=zd[dz-1];dfs[0]&=zd[dz];clear_5618(dz);Txshuju();break;
case 0x40: dfs[0]&=zd[dz]; dfs[0]|=zg[dz-1];Txshuju();break;//01 開路
case 0x80: dfs[0]&=zd[dz-1];dfs[0]&=zd[dz];Txshuju();break;
case 0Xc0: dfs[0]|=zg[dz]; dfs[0]|=zg[dz-1];Txshuju();TLC5618(dz);break;//