<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è) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 基于S3C2440的nRF2401驅動(dòng)設計

基于S3C2440的nRF2401驅動(dòng)設計

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

  tq2440_nf24_open 函數用于打開(kāi)設備, 設置功能引腳,將指定的引腳設置成是讀狀態(tài)還是寫(xiě)狀態(tài)。由于 與S3C2410 相差甚微,所以用一些S3C2410 的子函數,減少程序開(kāi)發(fā)的工作量。如:s3c2410_gpio_cfgpin (nf24_table [i],nf24_cfg_table[i]),nf24_table[],nf24_cfg_table[]是兩個(gè)靜態(tài)數組, nf24_table[]指定要設置的引腳,nf24_cfg_table[]指定設置到哪種工作模式。引腳的的定義在頭文件里,其位置在內核文件系統下,路徑為asm / arch / regs-gpio.h.

  tq2440_nf24_read,tq2440_nf24_ioctl 函數執行相應的讀寫(xiě)操作。通過(guò)子函數:s3c2410_gpio_cfgpin (nf24_table[0],nf24_cfg_table[5]);

  dr=s3c2410_gpio_getpin(nf24_table[0]);可以將采集到的管腳狀態(tài)通過(guò)操作系統內核送到應用程序, 由應用程序將位處理成字節。

  module_init(),module_exit()用于模塊的加載和退出。

  MODULE_AUTHOR(″cgq″),MODULE_LICENSE(″GPL″ )函數說(shuō)明了函數的作者和遵循的協(xié)議。

 2.2 nFR2401 軟件設備號

  字符設備有一個(gè)主設備號和一個(gè)次設備號。主設備號標識設備對應的程序, 內核利用主設備號將設備與相應的程序對應起來(lái)。次設備號只由設備驅動(dòng)程序使用,區分同類(lèi)型設備。向系統增加一個(gè)驅動(dòng)程序意味著(zhù)要給它一個(gè)主設備號。驅動(dòng)編寫(xiě)時(shí),先不設置主設備號。待編寫(xiě)完成后,加載驅動(dòng)程序后,查看/ proc / devices 文件,查找系統分配給設備的主設備號。然后修改驅動(dòng)程序中的設備號,重新編譯即可。例如在實(shí)驗中,系統對nFR2401 的主設備號分配為:

  #define DEVICE_NAME ″nf24″ / *″TQ2440_nf24″*/

  #define NF24_MAJOR 253 / *nf24_MAJOR 198*/

  2.3 nFR2401 應用軟件

  應用軟件主要完成數據的發(fā)送、接收和存儲。為了使相關(guān)程序調用方便。將數據的發(fā)送、接收和存儲按照模塊化編寫(xiě)。圖2 是程序的主體流程圖。

  圖2 發(fā)送、接收流程圖

  圖2 發(fā)送、接收流程圖

  系統上電后,當程序執行到調用該設備時(shí),打開(kāi)相關(guān)設備文件時(shí),首先通過(guò)open()函數打開(kāi)設備,如果沒(méi)有正常打開(kāi),則顯示錯誤信息, 進(jìn)行相應處理。

  如果打開(kāi)正常。首先對nFR2401 進(jìn)行配置編程。

  將CS、CE 設為配置模式。通過(guò)CLK 和DATA 將通道的數據長(cháng)度、通道的地址、地址的位數、CRC 校驗和、使能、通信模式、速率等配置數據由高位到低位移入芯片。配置字一共120bit.將CS、CE 設為工作模式,nFR2401 將刷新內部配置并使新配置立即生效。隨后就按照配置的工作方式工作。

  在數據采集實(shí)驗系統中, 隨運動(dòng)部件的RF 芯片剛開(kāi)始處于接收命令, 接收到工作指令時(shí), 開(kāi)始將采集到的數據發(fā)送出去。連接 的設備發(fā)送完工作指令后,就處于接收狀態(tài)。

  這樣就避免了使 處于頻繁的工作模式變動(dòng)之中,節省了時(shí)間,加快了數據傳輸的速度。減少了丟數的概率。

  所有相關(guān)程序編譯完成后, 將驅動(dòng)程序放入內核文件系統的/ driver / char 文件夾下, 編譯后生成的驅動(dòng)執行文件入文件系統的/ lib 文件夾下,應用程序放在/ opt 下,修改系統啟動(dòng)文件順序即/ etc / init.d / rcS 文件并添加“insmod / lib / nf24.ko” 系統啟動(dòng)時(shí)即可加載驅動(dòng)。然后重新編譯,移植內核,文件系統。燒寫(xiě)、重啟后,即可按原先的工作。

  3 結束語(yǔ)

   的結合,是對Linux 外設的擴展。系統的集成度高,傳輸速率高。芯片自身的糾錯機制能確保信號能夠準確傳輸。多頻點(diǎn)的特性,可以使得在狹小的空間里布置多個(gè)同樣類(lèi)型的芯片進(jìn)行互不干擾的工作。


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

評論


相關(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>