<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于A(yíng)RM平臺的RFID系統設計與實(shí)現

基于A(yíng)RM平臺的RFID系統設計與實(shí)現

作者: 時(shí)間:2012-11-13 來(lái)源:網(wǎng)絡(luò ) 收藏

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

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

  驅動(dòng)程序加載時(shí),內核會(huì )調用用戶(hù)定義的初始化程序。用戶(hù)用init_moudle(function name)標識初始化程序,其中的function name為編寫(xiě)的初始化函數的函數名。用module_exit(function name) 標識釋放設備程序,在初始化函數里驅動(dòng)程序必須向操作系統注冊設備,以獲得系統資源和操作系統正確的調用驅動(dòng)程序。在Linux中這個(gè)函數是register_chrdev,在fs/devices.h中其定義為:int register_chrdev(unsigned int major,const char* name,struct file_operation *fops)。

  其中major是為設備向系統申請的主設備號,name驅動(dòng)程序給設備定義的名字,fops是接下來(lái)要介紹的一個(gè)結構體。在卸載的時(shí)候需要告知操作系統注銷(xiāo)注冊[5]。

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

  1. ssize_t (*read) (struct file *, char *, size_t, loff_t *);用來(lái)從設備中讀取數據。

  2. ssize_t (*write) (struct file *, const char *, size_t, loff_t *);向設備發(fā)送數據。

  3. int (*ioctl) (struct inode *,struct file *,unsigned int,unsigned long);系統調用ioctl提供了一種執行設備特定的命令的方法(如格式化軟盤(pán)某個(gè)磁道,這既不是讀操作也不是寫(xiě)操作)。

  4. int (*open) (struct inode *, struct file *);始終是對設備文件執行的第一個(gè)操作。

  5. int (*release) (struct inode *, struct file *);當file 結構被釋放時(shí),將調用這個(gè)操作。

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

  1. int PortOpen(pportinfo_t pportinfo); 打開(kāi)串口,返回文件描述符。pportinfo: 待設置的串口信息。

  2. int PortSet(int fdcom, const pportinfo_t pportinfo);設置串口。fdcom: 串口文件描述符,pportinfo: 待設置的串口信息。

  3. void PortClose(int fdcom);關(guān)閉串口。fdcom:串口文件描述符。

  4. int PortSend(int fdcom, char *data, int datalen);發(fā)送數據。fdcom:串口描述符,data:待發(fā)送數據,datalen:數據長(cháng)度。返回實(shí)際發(fā)送長(cháng)度 。

  5. int PortRecv(int fdcom, char *data, int datalen, int baudrate); 接收數據。fdcom:串口描述符,data:接收緩沖區,datalen.:接收長(cháng)度, baudrate:波特率。返回實(shí)際讀入的長(cháng)度。

  完成了串口通信的基本函數后,可以通過(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)行自我診斷,取得診斷結果的指令。3. Turn off RF Power。將RC-S600系列的RF輸出置于Off;4. Check Firmware Version。取得RC-S600系列的Software的版本號;5. Control LED。對連接到RC-S600的LED進(jìn)行On/Off;6.Communication Thru。對卡發(fā)送1次host指定Command,根據是否從卡收到Response,向host返回該Card Response Packet;7. Access I/O Register。對RC-S600系列的RF進(jìn)行初期設定。

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

  5. 結論

  本文給出了一種基于A(yíng)RM 平臺的RFID 系統設計,現已通過(guò)實(shí)際測試。由于本系統采用的是標準接口設計,這就為以后的多功能開(kāi)發(fā)平臺提供了理想的硬件環(huán)境。

參考文獻:

[1].MT48LC2M32B2TG-6datasheethttp://www.dzsc.com/datasheet/MT48LC2M32B2TG-6_1054742.html.
[2].RTL8201datasheethttp://www.dzsc.com/datasheet/RTL8201_586322.html.
[3].datasheethttp://www.dzsc.com/datasheet/_[4].2N7000datasheethttp://www.dzsc.com/datasheet/2N7000_38377.html.
[5].LM7812datasheethttp://www.dzsc.com/datasheet/LM7812_843716.html.
[6].LM555datasheethttp://www.dzsc.com/datasheet/LM555_451680.html.
[7].PCBdatasheethttp://www.dzsc.com/datasheet/PCB_1201640.html.
[8].majordatasheethttp://www.dzsc.com/datasheet/major_2533383.html.


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: ARM平臺 RFID系統 AT91RM9200

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>