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