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