国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于ARM平臺(tái)的RFID系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

發(fā)布時(shí)間:2010-8-5 10:02    發(fā)布者:lavida
關(guān)鍵詞: arm , RFID
1. 引 言

近年來(lái),RFID(無(wú)線(xiàn)射頻)技術(shù)是正在興起的一項(xiàng)新興的自動(dòng)識(shí)別技術(shù)。RFID 利用射頻方式進(jìn)行非接觸雙向通信,從而實(shí)現(xiàn)對(duì)物體的識(shí)別,并將采集到的相關(guān)信息數(shù)據(jù)通過(guò)無(wú)線(xiàn)技術(shù)遠(yuǎn)程進(jìn)行傳輸。相較目前廣泛采用的條型碼技術(shù),RFID 具有讀取距離遠(yuǎn)(幾米至幾十米)、穿透能力強(qiáng)(可透過(guò)包裝箱直接讀取信息)、抗污染、效率高(可同時(shí)處理多個(gè)標(biāo)簽)、信息量大的特點(diǎn)。它的出現(xiàn)給物流和生產(chǎn)方面的工業(yè)應(yīng)用帶來(lái)了革命性的影響。  

正是由于上述原因,本文提出了一種基于ARM 平臺(tái)的RFID 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)方案,以滿(mǎn)足人們?cè)?a href="http://www.qingdxww.cn/keyword/嵌入式" target="_blank" class="relatedlink">嵌入式領(lǐng)域?qū)FID 技術(shù)的開(kāi)發(fā)與應(yīng)用。  

2. 系統(tǒng)介紹  

2.1 系統(tǒng)硬件設(shè)計(jì)

硬件系統(tǒng)框圖:如圖處理器采用現(xiàn)行嵌入式系統(tǒng)中最流行ARM系列,具體采用ATMEL公司的工業(yè)級(jí)ARM芯片。FLASH為4M,采用的芯片是AM,用于存儲(chǔ)LINUX內(nèi)核,RAMDISK和一些系統(tǒng)配置文件和測(cè)試數(shù)據(jù)。SDRAM為M,采用的芯片是MT48LC2M32B2TG-6。網(wǎng)絡(luò)接口的物理層芯片采用RTL8201。同時(shí)還配有輸入輸出設(shè)備,即LCD顯示屏和5×4鍵盤(pán)。電源采用穩(wěn)壓模塊輸出穩(wěn)定的電壓,同時(shí)設(shè)計(jì)有單鍵開(kāi)關(guān)和充電電路等方便用戶(hù)的功能。

2.2 系統(tǒng)軟件設(shè)計(jì)

我們采用LINUX作為系統(tǒng)的操作系統(tǒng),給標(biāo)準(zhǔn)LINUX打上支持ARM系列的補(bǔ)丁包后內(nèi)核便提供了對(duì)AT91RM9200的支持(我們稱(chēng)之ARM-LINUX),在ARM-LINUX之下,編寫(xiě)鍵盤(pán),LCD,網(wǎng)卡,F(xiàn)LASH文件系統(tǒng)的驅(qū)動(dòng)程序。在ARM-LINUX上編寫(xiě)一個(gè)小型簡(jiǎn)潔的GUI(圖形界面用戶(hù)接口),使程序更加模塊化,便用上層程序的編寫(xiě)和以后系統(tǒng)的升級(jí)。

3. 硬件電路設(shè)計(jì)  

3.1 單鍵開(kāi)關(guān)電路設(shè)計(jì)

單鍵開(kāi)關(guān)設(shè)計(jì)必須考慮到以下幾點(diǎn):一是單鍵開(kāi)關(guān)必須穩(wěn)定,按一次鍵只有一次電源的通或斷;二是電流問(wèn)題:因?yàn)閱捂I開(kāi)關(guān)無(wú)論是關(guān)機(jī)的時(shí)候還是開(kāi)機(jī)的時(shí)候都要使用電源,所以必須保證其電流足夠小,減少電源的損耗。通過(guò)查找資料。  

該電路的工作原理是:Q8(2N7000),Q7(IRF8540)分別為N溝道和P溝道場(chǎng)效應(yīng)管,其開(kāi)啟電壓(GS之間的電壓)分別為3V和-2V,當(dāng)BP17放開(kāi)的時(shí)候,Q8的GS之間電壓很小,Q8截止,D端電流很小,所以R11上的壓降很小,Q7的GS端之間的電壓很小,Q7同樣截止,所以沒(méi)有電壓輸出。BP17閉合時(shí),R11,BP17,R21,C69形成回路,電源對(duì)C69充電,當(dāng)C69的電壓上升到大約3V時(shí),Q8導(dǎo)通,Q8上D級(jí)電流增大,R11上的壓降增大,Q7導(dǎo)通,由于Q7導(dǎo)通后的阻抗很小,所以電源類(lèi)似于接通,對(duì)C69繼續(xù)充電,直到達(dá)到電源電壓。當(dāng)再次按下BP17時(shí),C69通過(guò)開(kāi)關(guān)放電,電壓降低,當(dāng)降到3V以下時(shí)Q8截止,同時(shí)Q7也截至,開(kāi)關(guān)關(guān)閉。此系統(tǒng)在Q7,Q8沒(méi)有導(dǎo)通前,MOS管的阻抗很大,所以功耗電流很小。   

3.2 充電電路設(shè)計(jì)

充電電路可以為用戶(hù)提供很大的方便。一般情況充電電路需要達(dá)到的要求是:必須保證電池充電時(shí)不過(guò)充;充電時(shí)間不能太短,但同時(shí)也要保證充電電流不能太大;有充電指示。根據(jù)上面以上要求,該電路的工作原理是:LM7812是一個(gè)穩(wěn)壓模塊,為系統(tǒng)提供穩(wěn)定的9V電壓。
LM555是一個(gè)觸發(fā)器,管腿二和管腿六是觸發(fā)端,管腿五是參考電壓,當(dāng)管腿二的電壓小于管腿五和管腿六的三分之一電壓小于管腿五的時(shí)候,管腿三輸出0V;當(dāng)管腿二的電壓小于管腿五但管腿五的電壓大于管腿六的三分之一電壓的時(shí)候,管腿三輸出VCC;當(dāng)管腿二的電壓大于管腿五時(shí)候,管腿三輸出0V。當(dāng)該系統(tǒng)上電但沒(méi)有放充電電池的時(shí)候,滿(mǎn)足上述條件一,所以管腿三輸出0V,二極管不亮;當(dāng)把待充電池接在VCC端的時(shí)候,通過(guò)C45濾波(防止干擾脈沖)的采集電壓傳送到管腿二和管腿六,因?yàn)殡姵乇旧碛须妷海赃@個(gè)時(shí)候滿(mǎn)足上述條件二,管腿三輸出9V開(kāi)始充電,發(fā)光二極管變亮;當(dāng)充電完畢,電池達(dá)到指定電壓時(shí),滿(mǎn)足上述條件三,管腿三輸出0V,充電結(jié)束,發(fā)光二極管熄滅。綜上所述,只要參考電壓足夠精確,就不會(huì)造成電池過(guò)充現(xiàn)象。同時(shí)充電電壓能夠達(dá)到9V,所以調(diào)節(jié)R52完全可以在充電電流和充電時(shí)間上進(jìn)行權(quán)衡。所以此電路可以達(dá)到上述要求。  

3.3 PROTEL 電路設(shè)計(jì)和電路板布線(xiàn)的基本流程

原理圖部分:建立自己的元件庫(kù)。因?yàn)椴⒉皇撬械脑赑ROTEL的元件庫(kù)中都存在,一般要根據(jù)自己實(shí)際所用的芯片建立自己的元件庫(kù)。繪制原理圖。當(dāng)器件比較多的時(shí)候,可以采用層次設(shè)的方法。分模塊對(duì)系統(tǒng)進(jìn)行設(shè)計(jì),這樣可以使系統(tǒng)更加清晰,降低錯(cuò)誤的可能性。原理圖畫(huà)好后,利用其自動(dòng)編號(hào)功能對(duì)器件進(jìn)行編號(hào)。PCB板部分.建立自己的封裝庫(kù),同元件庫(kù)一樣,有時(shí)候必須建立自己的封裝庫(kù),在畫(huà)封裝的時(shí)候,要嚴(yán)格按照芯片公司的資料繪制。為每一個(gè)元件設(shè)置封裝。用向?qū)Мa(chǎn)生PCB文件,定義好電路板的層數(shù)和邊界。利用設(shè)計(jì)同步器將器件導(dǎo)入到PCB中。根據(jù)具體的工藝設(shè)計(jì)好規(guī)則,如過(guò)孔大小,最小線(xiàn)寬。按照易于布線(xiàn)的原則對(duì)元件進(jìn)行布局布線(xiàn),在布線(xiàn)的時(shí)候要遵循一些原則。檢查錯(cuò)誤。  

4. 系統(tǒng)軟件設(shè)計(jì)  

4.1 LINUX 在AT91RM9200 上的移植

AT91RM9200兩種啟動(dòng)方式:1.其內(nèi)部存儲(chǔ)器地址為0x00100000-0x001FFFFF的部分存在一段啟動(dòng)程序,如果選擇這種啟動(dòng)模式在啟動(dòng)時(shí),0x00100000-0x001FFFFF部分的地址被映射到0x00000000,CPU運(yùn)行這段程序,這段程序會(huì)往CPU的調(diào)試串口(或者是USB口)不停的發(fā)字符"C",同時(shí)提供小于12K程序的串口(利用XMODEM協(xié)議)下載功能。2.可以直接從外部存儲(chǔ)器啟動(dòng),主要是連接在SPI(串行外部設(shè)備接口)和NCS0(CPU上的一個(gè)管腿,是EBI即外部總線(xiàn)接口的一部分,用于外部存儲(chǔ)器的尋址)上的SPI DataFlash,Two-wire EEPROM和連接在NCS0上的8比特并行存儲(chǔ)器。  

根據(jù)CPU的啟動(dòng)方式,我們可以這樣設(shè)計(jì)移植過(guò)程及系統(tǒng)的啟動(dòng)方式。在系統(tǒng)移植階段,我們應(yīng)用啟動(dòng)方式

1,通過(guò)其下載功能下載一個(gè)小于12K的程序(實(shí)際使用的程序?yàn)長(zhǎng)oader,是開(kāi)放源碼的軟件,可以在網(wǎng)上下載到)到SDRAM并運(yùn)行,該程序可以提供大于12K的串口下載功能,用這個(gè)程序下載一個(gè)更大的程序到SDRAM中,而這個(gè)程序可以提供類(lèi)似于PC機(jī)上BIOS的功能(實(shí)際使用的是U-BOOT,是開(kāi)放源碼的軟件,可以在網(wǎng)上下載到),其功能主要有:LINUX系統(tǒng)引導(dǎo),網(wǎng)卡驅(qū)動(dòng),TFTP下載功能,SDRAM和FLASH之間的讀寫(xiě)功能。   

通過(guò)其TFTP下載功能下載內(nèi)核到SDRAM,引導(dǎo)操作系統(tǒng)并進(jìn)行測(cè)試。如果操作系統(tǒng)測(cè)試工作無(wú)誤后,可以應(yīng)用U-BOOT的寫(xiě)FLASH功能把U-BOOT和LINUX內(nèi)核寫(xiě)到FLASH中,在應(yīng)用程序開(kāi)發(fā)階段應(yīng)用CPU的啟動(dòng)方式2,直接從FLASH啟動(dòng)。這種方法的優(yōu)勢(shì)是:在內(nèi)核下載的時(shí)候,提供了TFTP下載功能,加快了速度。在應(yīng)用程序開(kāi)發(fā)階段,因?yàn)閮?nèi)核(還有后面的RAMDISK)都是固化在FLASH中,可以省去其下載過(guò)程,同樣也可以節(jié)省時(shí)間。  

移植過(guò)程大致可分為以下幾個(gè)步驟:配置用戶(hù)環(huán)境及交叉編譯環(huán)境;編譯Loader和UBoot,其中要在UBoot中修改網(wǎng)卡驅(qū)動(dòng);3.配置Linux內(nèi)核;4.制作ramdisk文件系統(tǒng),并根據(jù)實(shí)際系統(tǒng)進(jìn)行修改;5.移植Busybox;6.JFFS2文件系統(tǒng)的移植。在Linux內(nèi)核中已經(jīng)包含了MTD和JFFS2文件系統(tǒng)的驅(qū)動(dòng)程序,但是必須針對(duì)具體的系統(tǒng)編寫(xiě)驅(qū)動(dòng)程序。具體步驟如下:1)由于ROM設(shè)備和MTDBlock設(shè)備的主設(shè)備號(hào)(major)都是31,所以如果你不想把JFFS2作為根文件系統(tǒng)的話(huà),必須修改他們之一的major。2)編寫(xiě)驅(qū)動(dòng)程序:編寫(xiě)讀,寫(xiě),復(fù)制接口(這些接口將被MTD驅(qū)動(dòng)程序調(diào)用,提供給上層軟件的讀寫(xiě)復(fù)制功能),定義map_info結(jié)構(gòu)體,以便MTD能夠從這個(gè)結(jié)構(gòu)體中得到讀寫(xiě)函數(shù)的指針,最后還要定義FLASH的分區(qū)表。根據(jù)系統(tǒng)的設(shè)計(jì),我們把4M的FLASH分成四個(gè)區(qū),第一個(gè)分區(qū)用來(lái)保存UBOOT及其參數(shù);第二個(gè)分區(qū)用來(lái)保存LINUX內(nèi)核;第三個(gè)分區(qū)用來(lái)保存RAMDISK;最后一個(gè)分區(qū)用來(lái)保存系統(tǒng)參數(shù)和用戶(hù)數(shù)據(jù)和測(cè)試數(shù)據(jù)。3)修改LINUX的配置文件,把驅(qū)動(dòng)程序加入到內(nèi)核。  

4.2 LINUX 驅(qū)動(dòng)程序的編寫(xiě)

我們研究字符型設(shè)備的驅(qū)動(dòng)程序的編寫(xiě),塊設(shè)備驅(qū)動(dòng)程序跟字符設(shè)備驅(qū)動(dòng)程序的編寫(xiě)有一定的相似性。  

驅(qū)動(dòng)程序加載時(shí),內(nèi)核會(huì)調(diào)用用戶(hù)定義的初始化程序。用戶(hù)用init_moudle(function name)標(biāo)識(shí)初始化程序,其中的function name為編寫(xiě)的初始化函數(shù)的函數(shù)名。用module_exit(function name) 標(biāo)識(shí)釋放設(shè)備程序,在初始化函數(shù)里驅(qū)動(dòng)程序必須向操作系統(tǒng)注冊(cè)設(shè)備,以獲得系統(tǒng)資源和操作系統(tǒng)正確的調(diào)用驅(qū)動(dòng)程序。在Linux中這個(gè)函數(shù)是register_chrdev,在fs/devices.h中其定義為:int register_chrdev(unsigned int major,const char* name,struct file_operation *fops)。  
其中major是為設(shè)備向系統(tǒng)申請(qǐng)的主設(shè)備號(hào),name驅(qū)動(dòng)程序給設(shè)備定義的名字,fops是接下來(lái)要介紹的一個(gè)結(jié)構(gòu)體。在卸載的時(shí)候需要告知操作系統(tǒng)注銷(xiāo)注冊(cè)。  

下面簡(jiǎn)要介紹一下file_operation結(jié)構(gòu)體中幾個(gè)主要的比較常用的方法。  

1. ssize_t (*read) (struct file *, char *, size_t, loff_t *);用來(lái)從設(shè)備中讀取數(shù)據(jù)。  
2. ssize_t (*write) (struct file *, const char *, size_t, loff_t *);向設(shè)備發(fā)送數(shù)據(jù)。  
3. int (*ioctl) (struct inode *,struct file *,unsigned int,unsigned long);系統(tǒng)調(diào)用ioctl提供了一種執(zhí)行設(shè)備特定的命令的方法(如格式化軟盤(pán)某個(gè)磁道,這既不是讀操作也不是寫(xiě)操作)。  
4. int (*open) (struct inode *, struct file *);始終是對(duì)設(shè)備文件執(zhí)行的第一個(gè)操作。  
5. int (*release) (struct inode *, struct file *);當(dāng)file 結(jié)構(gòu)被釋放時(shí),將調(diào)用這個(gè)操作。  
4.3 RFID 程序的編寫(xiě)

本系統(tǒng)采用的RFID 芯片是SONY 生產(chǎn)的RC-S600,它有自己的通信協(xié)議,并支持串口或者USB 口直接連接。這就大大方便了系統(tǒng)的開(kāi)發(fā)與應(yīng)用。由于本系統(tǒng)采用的是標(biāo)準(zhǔn)串口連接方式,因此針對(duì)應(yīng)用程序的要求,我們首先要提供一套關(guān)于串口的API 接口函數(shù)。  

1. int PortOpen(pportinfo_t pportinfo); 打開(kāi)串口,返回文件描述符。pportinfo: 待設(shè)置的串口信息。  
2. int PortSet(int fdcom, const pportinfo_t pportinfo);設(shè)置串口。fdcom: 串口文件描述符,pportinfo: 待設(shè)置的串口信息。  
3. void PortClose(int fdcom);關(guān)閉串口。fdcom:串口文件描述符。  
4. int PortSend(int fdcom, char *data, int datalen);發(fā)送數(shù)據(jù)。fdcom:串口描述符,data:待發(fā)送數(shù)據(jù),datalen:數(shù)據(jù)長(zhǎng)度。返回實(shí)際發(fā)送長(zhǎng)度 。  
5. int PortRecv(int fdcom, char *data, int datalen, int baudrate); 接收數(shù)據(jù)。fdcom:串口描述符,data:接收緩沖區(qū),datalen.:接收長(zhǎng)度, baudrate:波特率。返回實(shí)際讀入的長(zhǎng)度。  

完成了串口通信的基本函數(shù)后,可以通過(guò)由串口向RFID芯片發(fā)送命令字進(jìn)行控制,以下為RC-S600的Command說(shuō)明:1. Polling Command。從指定了System Code的卡里,取得制造ID(IDm)和制造Parameter(PMm)的指令。2. Diagnose R/W 。RC-S600系列進(jìn)行自我診斷,取得診斷結(jié)果的指令。3. Turn off RF Power。將RC-S600系列的RF輸出置于Off;4. Check Firmware Version。取得RC-S600系列的Software的版本號(hào);5. Control LED。對(duì)連接到RC-S600的LED進(jìn)行On/Off;6.Communication Thru。對(duì)卡發(fā)送1次host指定Command,根據(jù)是否從卡收到Response,向host返回該Card Response Packet;7. Access I/O Register。對(duì)RC-S600系列的RF進(jìn)行初期設(shè)定。  

經(jīng)測(cè)試,本系統(tǒng)能對(duì)所用RFID芯片的指定命令字進(jìn)行正確讀寫(xiě)和返回。  

5. 結(jié)論  

本文給出了一種基于ARM 平臺(tái)的RFID 系統(tǒng)設(shè)計(jì),現(xiàn)已通過(guò)實(shí)際測(cè)試。由于本系統(tǒng)采用的是標(biāo)準(zhǔn)接口設(shè)計(jì),這就為以后的多功能開(kāi)發(fā)平臺(tái)提供了理想的硬件環(huán)境。
本文地址:http://www.qingdxww.cn/thread-19299-1-1.html     【打印本頁(yè)】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠(chǎng)商推薦

  • Microchip視頻專(zhuān)區(qū)
  • 深度體驗(yàn)Microchip自動(dòng)輔助駕駛應(yīng)用方案——2025巡展開(kāi)啟報(bào)名!
  • 利用模擬開(kāi)發(fā)工具生態(tài)系統(tǒng)進(jìn)行安全電路設(shè)計(jì)
  • 你仿真過(guò)嗎?使用免費(fèi)的MPLAB Mindi模擬仿真器降低設(shè)計(jì)風(fēng)險(xiǎn)
  • 更佳設(shè)計(jì)的解決方案——Microchip模擬開(kāi)發(fā)生態(tài)系統(tǒng)
  • 貿(mào)澤電子(Mouser)專(zhuān)區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产大毛片 | 日韩网 | 大伊香蕉精品一线视频 | 榴莲丝瓜黄瓜草莓向日葵污苹果 | 在线精品国产三级 | 久久国产热这里只有精品8 久久国产热这里只有精品 久久国产热视频 | 成人国产一区 | 久久99国产精一区二区三区 | 国内第一永久免费福利视频 | 高清一区二区亚洲欧美日韩 | 亚洲视屏在线观看 | 欧美日韩一区二区在线 | 91精品国产自产在线观看 | 亚洲日本一区二区三区在线不卡 | 欧美人乱大交xxxxx | 国产午夜视频在线 | 二级特黄绝大片免费视频大片 | 99视频精品国在线视频艾草 | 九九热热九九 | 四虎最新入口 | h成人3d动漫在线观看网站 | 厚颜无耻韩国动漫免费观看5 | 亚洲不卡一区二区三区 | 日韩欧美亚洲中字幕在线播放 | 国产亚洲欧洲一区二区三区 | 天天综合欧美 | 五月天综合社区 | 国产精品高清一区二区三区 | 香蕉视频在线精品 | 国产欧美三级 | 亚洲视频在线观看网站 | 日韩一区二区三区在线免费观看 | 欧美一区二区视频在线观看 | 人操人摸| 九九热视频精品在线观看 | 久草视频国产 | 激情综合六月 | 免费五级在线观看日本片 | 国产精品91在线 | 国产香蕉精品视频在 | 国产偷v国产偷v国产 |