APP下载

基于Linux下nRF24L01设备驱动的设计

2012-09-12林丽蓉余红英姜世杰洪永学

电子测试 2012年11期
关键词:嵌入式系统设计

林丽蓉, 余红英, 姜世杰, 洪永学

(中北大学 信息与通信工程学院 , 太原 030051)

0 引言

随着测控技术的发展,nRF24L01越来越多的应用于无线传输测控系统。近年来,随着ARM和嵌入式Linux系统的迅速发展,在Linux系统下nRF24L01和ARM的通信也越来越多,但大都都是用ARM的GPIO端口来模拟SPI操作时序来与nRF24L01进行通信,而ARM本身带有可灵活配置的SPI 接口这一功能却被忽视,用ARM的SPI接口和nRF24L01的通信充分利用了这一优势。

1 硬件电路设计

NRF24L01通过SPI接口和外部控制器件进行数据交换,在Linux系统中SPI通信的实现可以通过ARM的SPI接口,也可以通过ARM的GPIO端口软件模拟SPI时序的方式来实现,在本次设计中选用的SPI接口。

设计中ARM芯片选择三星公司生产的S3C2440,S3C2440包括两个SPI接口,每个SPI接口分别有两个8位的数据移位器用于发送和接收数据。在SPI的发送期间,数据同时发送(串行移出)和接收(串行移入)。S3C2440通过外接12 MHz的晶振,经时钟控制逻辑的PLL倍频后将HCLK、HCLK和PCLK设置为200 MHz、100 MHz、50 MHz,其中PCLK将用作SPI的时钟输入,NRF24L01模块与S3C2440的硬件连接电路如1图所示。

2 字符设备驱动设计

在Linux系统中一个完善的设备驱动既要有硬件的支持,同时也要符合硬件设计的驱动模块。结合nRF24L01芯片的特点以及Linux系统下设备类型的不同,可以把它认为是字符设备驱动的一种。本次设计中使用的是2.6.30的内核,根据 Linux 字符驱动的特定架构,本文设计的nRF24l01 芯片驱动由init、exit、 open、close、read 等函数结构组成,以完成不同的功能。本次设计的是nRF24l01一次连续接收4字节数据接收驱动程序,其中open、close函数没做什么工作,只是让其返回个0值。

图1 NRF24L01与S3C2440的连接电路图

登录APP查看全文

猜你喜欢

嵌入式系统设计
Smartflower POP 一体式光伏系统
WJ-700无人机系统
ZC系列无人机遥感系统
瞒天过海——仿生设计萌到家
搭建基于Qt的嵌入式开发平台
连通与提升系统的最后一块拼图 Audiolab 傲立 M-DAC mini
设计秀
有种设计叫而专
嵌入式软PLC在电镀生产流程控制系统中的应用
Altera加入嵌入式视觉联盟