在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM平臺的RFID系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

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

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

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

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

              驅(qū)動(dòng)程序加載時(shí),內(nèi)核會調(diào)用用戶定義的初始化程序。用戶用init_moudle(function name)標(biāo)識初始化程序,其中的function name為編寫的初始化函數(shù)的函數(shù)名。用module_exit(function name) 標(biāo)識釋放設(shè)備程序,在初始化函數(shù)里驅(qū)動(dòng)程序必須向操作系統(tǒng)注冊設(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)申請的主設(shè)備號,name驅(qū)動(dòng)程序給設(shè)備定義的名字,fops是接下來要介紹的一個(gè)結(jié)構(gòu)體。在卸載的時(shí)候需要告知操作系統(tǒng)注銷注冊[5]。

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

              1. ssize_t (*read) (struct file *, char *, size_t, loff_t *);用來從設(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è)備特定的命令的方法(如格式化軟盤某個(gè)磁道,這既不是讀操作也不是寫操作)。

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

              5. int (*release) (struct inode *, struct file *);當(dāng)file 結(jié)構(gòu)被釋放時(shí),將調(diào)用這個(gè)操作。

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

              1. int PortOpen(pportinfo_t pportinfo); 打開串口,返回文件描述符。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ù)長度。返回實(shí)際發(fā)送長度 。

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

              完成了串口通信的基本函數(shù)后,可以通過由串口向RFID芯片發(fā)送命令字進(jìn)行控制,以下為RC-S600的Command說明: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的版本號;5. Control LED。對連接到RC-S600的LED進(jìn)行On/Off;6.Communication Thru。對卡發(fā)送1次host指定Command,根據(jù)是否從卡收到Response,向host返回該Card Response Packet;7. Access I/O Register。對RC-S600系列的RF進(jìn)行初期設(shè)定。

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

              5. 結(jié)論

              本文給出了一種基于ARM 平臺的RFID 系統(tǒng)設(shè)計(jì),現(xiàn)已通過實(shí)際測試。由于本系統(tǒng)采用的是標(biāo)準(zhǔn)接口設(shè)計(jì),這就為以后的多功能開發(fā)平臺提供了理想的硬件環(huán)境。

            參考文獻(xià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.


            上一頁 1 2 3 下一頁

            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉