摘 要: 根據嵌入式的設計應用,采用ARM9作為報警系統的控制裝置,選用集成音頻驅動電路和汽車控制傳感等部件,同時還為系統安裝了智能卡和使用方便的新型UHF遠程發射電路,配合軟件和操作系統,改進了汽車智能防盜功能,并且具有智能、安全和性價比高等優點。
關鍵詞: 嵌入式;智能;音頻;報警;遠程控制
?
隨著社會經濟的發展及電子技術的應用,人們在享受汽車帶來的方便與快樂的同時,也在為汽車安全防盜問題憂慮。如何解決汽車防盜問題,電子設計師們研制出不同方式、不同結構的防盜報警系統。在基于GPRS 和嵌入式計算機的遠程監控系統研究[1]中,對汽車進行視頻遠程監控進行了詳細的研究,GPRS與GPS在汽車信息服務系統中的設計應用研究[2]中,利用GPS衛星導航技術對汽車的遠程定位進行實時監控。上述課題的研究都是大眾化的服務,針對現代汽車的防盜系統,如何提供智能化和個性化的汽車防盜系統,這無疑在汽車工業高速發展的今天具有更重要的實踐意義和商業前景。本文提出了基于嵌入式汽車智能防盜系統的構建,并設計了帶智能卡技術和遠程遙控技術的智能防盜車門,同時進行了個性化的音頻報警驅動軟硬件的設計。
1 汽車智能防盜系統的功能及構成
汽車智能防盜系統遠程控制車門的關閉,并同時啟動智能防盜功能。正常開啟車門時,可以使用常用的遠程遙控鑰匙,同時也可以由IC卡開啟車門。當出現碰撞和非正常開啟車門時,汽車各種防盜傳感部件檢測到信號,通過聲音報警電路發出急促的報警聲音,同時由無線通信模塊發出短信息,以此來通知車主汽車的當前狀況,車主根據信息對汽車發出控制指令。
本系統總體框圖如圖1所示,它由嵌入式ARM核心控制模塊、存儲器模塊、無線通信模塊、遠程控制模塊、汽車防盜檢測驅動模塊、人機接口模塊和聲音報警模7大模塊組成。
嵌入式ARM核心控制由ARM920TDMI的32位微處理器SamsungS3C2410X[3]芯片實現,該芯片共有272只引腳,它采用了FBGA封裝技術,具有大量的電源、接地引腳、地址總線、數據總線、通用I/O口以及其他的專用模塊,如UART、I2C等接口。在硬件系統中,芯片引腳的類型有輸入(I)、輸出(O)、輸入/輸出(I/O)等。輸出類型的引腳主要用于S3C2410X對外設的控制或通信,由S3C2410X主動發出,這些引腳的連接不會對S3C2410X自身的運行有太大的影響。輸入/輸出類型的引腳主要是S3C2410X與外設的雙向數據傳輸通道。在參考文獻[2]中,對GPRS模塊和GPS模塊的嵌入式開發,以及如何應用這兩個模塊實現短信息收發通信等系統功能進行了詳細的研究設計。人機接口模塊通過LCD觸摸顯示屏完成人機交互功能。存儲器模塊由Flash RAM和SDRAM組成,實現引導程序存儲和執行中的程序及產生的數據存儲,在嵌入式系統開發與應用[4]中有了較好的說明。防盜檢測驅動模塊包括汽車的車門智能卡傳感與檢測、位移傳感與檢測、點火傳感與檢測、電源傳感與檢測、方向盤傳感與檢測等,汽車防盜檢測驅動接口部分通過各種傳感的聲學量和物理量的監測,把監測的參數通過A/D轉換,由CAN總線傳送給ARM9處理。總之,系統在嵌入式芯片ARM9TDMI控制下,通過軟件和硬件的結合,實現了汽車防盜報警智能化。下面主要對汽車智能防盜的關鍵部分車門智能卡、音頻報警模塊軟硬件及遠程控制發射模塊硬件進行研究。
2?系統關鍵硬件部分設計
2.1 智能卡硬件部分設計
智能卡(Smart Card)是把集成電路芯片嵌入塑料基片中,利用讀卡器,讀取卡上的存儲數據,進行身份認證。智能卡主要有存儲卡、邏輯加密卡和CPU卡。本系統中使用的存儲卡,選取Atmel公司的AT24C04。 AT24C04[5]是美國Ateml公司的AT24系統2線串行(I2C總線協議)EEPROM芯片。該芯片支持雙向數據傳輸協議,16 B頁面寫入方式,自定時寫入周期最大10 ms,具有高可靠性,可使用100 000次寫/擦除,數據保留期為100年,且提供多種封裝形式。存儲芯片為8引腳,其中4個引腳未引用,另外4個引腳分別為VCC、SCL、SDAT和GND。串行時鐘輸入SCL(Seial Clock Input),當串行時鐘為上升沿時,數據輸入到芯片;串行時鐘為下降沿時,數據從芯片中輸出。串行數據SDA(Serial Data),設置為雙向串行傳送數據。該端為漏極開路驅動,可與任意數量的其他漏極開路或集電極開路器件“線或”。器件/頁面地址(Devicpage Addresses)有A2、A1、A0,它們作為器件的地址輸入端,應用于標準封裝中,在IC卡模塊封裝中不將A2、A1、A0引出到觸點上。
AT24C04的器件讀寫操作分成5個部分。(1)開始狀態:SCL處于高電平時,SDA從高電平轉向低電平表示一個“開始”狀態,該狀態表示一種操作的開始,因此必須在任何其他命令之前執行;(2)確認應答:所有地址和數據字以8位碼串行輸入/輸出EEPROM,EEPROM在收到每個地址或數據碼之后,置SDA于低電平作為確認應答,該確認應答發生于第9個時鐘周期;(3)輸出數據:數據按字節(8位)逐位輸出,每個時鐘脈沖輸出1位。SDA總線上的數據應在SCL低電平期間改變,在SCL高電平期間穩定;(4)輸入數據:數據按字節(8位)逐位輸入,每個時鐘脈沖輸出1位;在SCL低電平期間將數據送往SDA總線上,在SCL高電平期間SDA總線上的數據穩定,供接口設備讀取;(5)停止狀態:SCL處于高電平時,SDA由低電平轉向高電平表示一個“停止”狀態。該狀態表示一種操作的結束并將終止所有通信。
智能卡與ARM9芯片的連接利用I2C總線進行通信,如圖2所示。
2.2 音頻報警部分硬件設計
嵌入式ARM9芯片S3C2410X的聲音報警電路,利用S3C2410X支持的I2S總線,結合音頻驅動芯片UDA1341TS的部分功能,外加音頻功放電路,實現防盜報警。
音頻驅動芯片UDA1341TS引腳功能描述如表1所示。
嵌入式ARM9芯片S3C2410X芯片的各種傳感器接收到監測的物理參數,由S3C2410X進行內部處理,報警數據信號通過S3C2410X芯片的I2S接口輸出,即串行數據輸入(I2SDI)、串行數據輸出(I2SDO)、通道選擇(I2SLRCK)和串行時鐘(I2SCLK),連接到音頻驅動芯片UDA1341TS的I2S音頻接口,即DATA0、DATA1、WS、BCK、SYSCLK端口。
本系統由KD-9561產生報警音樂,同時也可以提供個性化的報警聲音,利用音頻UDA1341TS芯片的聲音輸入接口,連接小型麥克風,對UDA1341TS聲音輸入接口的模擬音頻信號進行模數轉換,采集音頻數據信號,由ARM芯片的I2S控制器讀I2S總線,通過DMA2通道實現個性化報警音存放在內核的DMA緩存區。保存的報警聲音數據傳輸由內部總線送到內存,然后傳到BDMA控制器通道,再通過I2S控制器寫入I2S總線,最后傳輸給音頻驅動芯片UDA1341TS。音頻驅動芯片對報警聲音的處理,由24與26腳輸出音頻信號,經過功放進行功率放大,揚聲器轉換聲音報警。具體實現電路如圖3所示。
?
2.3 汽車遠程控制發射硬件部分設計
汽車遠程控制由遠程控制發射和遠程控制接收兩部分組成,遠程控制接收電路通過UHF無線接口,接收到遠程控制信號,進行解碼處理,送ARMS3C2410X芯片進行處理。本文只研究發射部分,實際就是遙控發射器。本部分電路采用Atmel公司新型RF發送器芯片ATA5771作為汽車的遠程控制發射器,芯片為系統級封裝 (SiP),集成了Atmel知名的AVR微控制器ATtiny44V和RF發送器T5750/53/54,使用的頻率為868 MHz~928 MHz,并采用微型QFN24封裝,尺寸僅為5 mm x 5 mm,能夠用具有競爭力的成本設計出極小的鑰匙。A5771的原理框圖如圖4所示。
?
控制發射器作為指令的發射終端,它由ATtiny44把PA端口的按鍵信號,由內部的ADC電路轉換為數字信號,寫入8 bit的數據總線并進行數據運算,轉換成對應的控制命令,用T5750進行FSK鎖相環調制發射。發射在UHF波段范圍內。遠程控制發射模塊主要由內部SRM、EEPROM、PROGRAM FLASH、CPU核心、Power up/down、PLL和50Ω的微帶天線組成。CPU核心是整個控制器的核心,處理外部來的指令及運算數據。鎖相環部分由PLL、VCO和XTO三部分對需發射的頻率和相位進行控制,保證UHF信號的相位穩定。微帶天線的阻抗為50Ω,實現RF信號與UHF無線信號的轉換。遠程控制發射器具體電路如圖5所示。
?
3 系統關鍵部分軟件設計
3.1智能卡部分軟件設計
智能卡驅動程序的實現:
#define DTYPE_ALL?????? 0 //芯片控制命令
#define DTYPE_SECURITY? 1 //加密命令
#define DTYPE_ICCARD??? 2 //智能卡讀寫命令
...
#define ICCARD_IC2404_name “iccard24c04”
#define ICCARD_NAME “iccard”
typedef struct{
ICCARD_data card_data; /*IC卡數據*/
Int lasterrcode;?????? /*最后的錯誤碼*/
Wait_queue_head_t wq;? /*等待隊列*/
Spinlock_t lock;?????? /*自旋鎖*/
}ICCARD_DEV;
...
*******************調用內核函數*********
static struct file_operations mega8_iccard_fops={
owner: this_module,
? llseek: mega8_iccard_llseek,//IC卡定位函數
? read: mega8_iccard_read,? // IC卡設備文件系統讀函數
? write: mega8_iccard_write, // IC卡設備文件系統寫函數
? open: mega8_iccard_open,? //IC卡設備文件系統的打開設備文件函數
? release: mega8_iccard_release,// IC卡設備文件系統的釋放設備文件函數
#if 0
poll: mega8_iccard_poll,
#endif
ioctl: mega8_iccard_ioctl,};
上面的程序可以把IC卡的驅動加入到內核當中,實現用戶文件系統的接口。用戶通過程序去調用內核函數llseek、open、read、write、release、poll、ioctl的子程序,這里省略。
3.2 音頻驅動部分軟件設計
//**************** [ Record_Iis ] ************
void Record_Iis(void){
unsigned int save_B, save_E, save_PB, save_PE;
Uart_TxEmpty(0);
ChangeClockDivider(1,1);??????? //1:2:4
ChangeMPllValue(0x96,0x5,0x1);? //FCLK=135428571Hz, PCLK=3.385714MHz
Uart_Init(33857142,115200);
Uart_Printf('[ IIS (Master Mode) Test (Record Using UDA1341 codec) ]n');
save_B = rGPBCON;??????
save_E = rGPECON;??????
save_PB = rGPBUP;
save_PE = rGPEUP;
IIS_PortSetting();
??????????? //--- Record Buf initialize
??? ??????? //Non-cacheable area = 0x31000000 ~ 0x33feffff
rec_buf = (unsigned short *)0x31000000;
pISR_DMA2 = (unsigned)DMA2_Rec_Done;
pISR_EINT0 = (unsigned)Muting;
rINTMSK = ~(BIT_DMA2);
Init1341(RECORD); //--- DMA2 Initialize
rDISRCC2 = (1<<1) + (1<<0);//APB, Fix?
rDISRC2 = ((U32)IISFIFO);//IISFIFO
rDIDSTC2 = (0<<1) + (0<<0); ????? ?//PHB, Increment
rDIDST2 = (int)rec_buf;//0x31000000 ~
rDCON2= (1<<31)+(0<<30)+(1<<29)+(0<<28)+(0<<27)+(1<<24)+(1<<23)+(1<<22)+(1<<20)+REC_LEN;
//Handshake, sync PCLK, TC int, single tx, single service, I2SSDI, I2S Rx request,
//Off-reload, half-word, 0x50000 half word.
rDMASKTRIG2 = (0<<2) + (1<<1) + 0;??? //No-stop, DMA2 channel on, No-sw trigger
//=========================================
void _WrL3Addr(U8 data){??????
S32 i,j;
rGPBDAT = rGPBDAT & ~(L3D | L3M | L3C) | L3C;
//L3D=L, L3M=L(in address mode), L3C=H
for(j=0;j<4;j++){ ??//tsu(L3) > 190ns
//GPB[4:2]=L3C:L3D:L3M
for(i=0;i<8;i++){???????????? ? ?//LSB first???
if(data & 0x1)?{??//If data's LSB is 'H'
rGPBDAT &= ~L3C;??//L3C=L
rGPBDAT |= L3D; ??//L3D=H????????????
for(j=0;j<4;j++);???//tcy(L3) > 500ns
rGPBDAT |= L3C;??//L3C=H
rGPBDAT |= L3D;??//L3D=H
for(j=0;j<4;j++);???//tcy(L3) > 500ns
}
else{????????????????????????????????????????? //If data's LSB is 'L'
??? ?? rGPBDAT &= ~L3C;?//L3C=L
????? rGPBDAT &= ~L3D;?//L3D=L
????? for(j=0;j<4;j++);??//tcy(L3) > 500ns
????? rGPBDAT |= L3C;??//L3C=H
????? rGPBDAT &= ~L3D;?//L3D=L
???? ? for(j=0;j<4;j++);??//tcy(L3) > 500ns???????????
}
data >>= 1;
}
rGPBDAT? = rGPBDAT & ~(L3D | L3M | L3C) | (L3C | L3M);???????????//L3M=H,L3C=H??
}
//==========================================
void _WrL3Data(U8 data,int halt) {
S32 i,j;
if(halt){
??????????? rGPBDAT? = rGPBDAT &~(L3D | L3M | L3C) | L3C;
??????????? //L3C=H(while tstp, L3 interface halt condition)???????
??????????? for(j=0;j<4;j++);?//tstp(L3) > 190ns
}
rGPBDAT? = rGPBDAT & ~(L3D | L3M | L3C) | (L3C | L3M);????????? //L3M=H(in data transfer mode)???????
for(j=0;j<4;j++);??//tsu(L3)D > 190ns
????????????????????????????????????? //GPB[4:2]=L3C:L3D:L3M
for(i=0;i<8;i++){
????if(data & 0x1) {????????????????? ?//if data's LSB is 'H'
????????????? rGPBDAT &= ~L3C;? //L3C=L
????????????? rGPBDAT |= L3D;?//L3D=H
????????????? for(j=0;j<4;j++);??//tcy(L3) > 500ns
????????????? rGPBDAT |= (L3C | L3D);?//L3C=H,L3D=H
????????????? for(j=0;j<4;j++);??//tcy(L3) > 500ns
}
else{????//If data's LSB is 'L'
??? ?? rGPBDAT &= ~L3C;??//L3C=L
??????? rGPBDAT &= ~L3D;??//L3D=L
??????? for(j=0;j<4;j++);???//tcy(L3) > 500ns
???????? rGPBDAT |= L3C;???//L3C=H
??????????????rGPBDAT &= ~L3D;??//L3D =L
????????????? for(j=0;j<4;j++);???//tcy(L3) > 500ns
}
data >>= 1;???//For check next bit
}
rGPBDAT? = rGPBDAT & ~(L3D | L3M | L3C) | (L3C | L3M);????????? //L3M=H,L3C=H
}
本系統經過仿真實驗,結果顯示各項技術指標得以很好的實現。系統采用ARM9作為系統處理控制中心,應用智能卡和新型遠程控制UHF無線發射技術,結合音頻驅動報警功能,實現了智能化、性能優良、安全可靠、性價比高的防盜系統。課題現正向基于人體生物防盜方向發展,未來將增加指紋自動識別汽車防盜功能。
參考文獻
[1] 蔚承英.基于GPRS 和嵌入式計算機的遠程監控系統研究[J].無線通信技術,2007,16(4):47-48.
[2] 陸小鋒.GPRS與GPS在汽車信息服務系統中的設計應用[J].微計算機信息,2005,21(3):188-189.
[3] Samsung Electronics CO.,Ltd.S3C2410X 32-Bit RISC microprocessor user’s manual[ol].2003.
[4] 熊茂華,楊震倫.ARM9嵌入式系統設計與開發應用[M].北京:清華大學出版社,2008:69-76.
[5] 劉守義.智能卡技術[M].西安:西安電子科技大學出版社,2007.