基于S3C2440的nRF2401驱动设计

基于S3C2440的nRF2401驱动设计,第1张

  通信频率为2.4GHz 的ISM 频段,由于其免许可证、波长较短、天线的尺寸小、外围器件少等优点,适合于近距离无线通信。将ARM9 与nRF24E1 结合, 可以缩小设备体积, 降低系统功耗, 减少设备间连线困难等问题。针对ARM9 芯片S3C2440 的特点设计了对nFR24E1 的接口电路和驱动程序。对于在狭小空间中,有设备之间的数据共享要求的系统是一种有效解决途径。

  2.4GHz 无线设备的使用,免去了系统之间连线的烦恼。一方面可以降低设备的成本,另一方面就是可以简化设备的安装。

  特别是对于一些运动部件的实时测量,借助两个无线传输设备,可以将一部分测量设备做到运动部件上,另一部分安装在附近,就可以将运动部件的实时数据传输出来, 供设计人员对设备实时工作的性能进行详细分析和改进。本文着重介绍nRF24E1 与S3C2440 的硬件连接以及在Linux *** 作系统下的驱动设计。无线设备采用基于NF2401AG 芯片。

  1 硬件结构

  nFR2401A 是Nordic 公司的一款单片2.4GHz 无线传输芯片。该芯片由一个完全集成的频率合成器,一个功率放大器晶体振荡器和调制器组成, 输出功率和频率可以通过3 线接口编程设置。

  1.1 nFR2401 的通信协议与工作模式

  nFR2401 之间的无线收发是以数据包的形式发送和接收的。其数据包格式如下:

  基于S3C2440的nRF2401驱动设计,数据包格式,第2张

  其中,前缓冲是硬件自动添加,地址由用户设定。为32~40位;循环冗余校验由内置CRC 纠检错硬件电路自动添加。可设为0、8 或6 位。所有的数据总共长度为256 位。

  nFR2401 的工作模式有配置模式、工作模式、待机模式、掉电模式四种。模式由主控芯片通过软件设置。芯片上电后,S3C2440 通过接口将配置数据送入芯片,设置收发模式、收发频率、接收地址、发射功率、CRC 校验和的长度、有效数据的长度等。传输中,只有地址,校验和匹配的数据包才能被进一步处理, 产生中断信号。这时,S3C2440 读取数据。在同一时刻nFR2401 只能处于接收或发送模式中的一种, 一般以接收模式为待机状态。

  1.2 nFR2401 与S3C2440 的接口设计

  nFR2401 与S3C2440 的接口设计如图1 所示。通过将S3C2440 芯片的GPD 口与nFR2401 连接。S3C2440 的GPD口为多功能口,主要是LCD 屏的接口。由于系统没有显示部分,所以将该口用作了nFR2401 的接口。系统工作时,无线通信一直处于工作状态,所以将PWR_UP 引脚直接与VDD 相连。系统采用通道1,S3C2440 对nFR2401 采用查询模式, 接收到上位机工作命令后, 只要nFR2401 的DR1 指示接收到数据,S3C2440 就通过CS、CE、DATA、CLK 读取数据,并以文件的形式进行存储,然后通过网络将数据发送给上位机。

  基于S3C2440的nRF2401驱动设计,图1 系统框图。,第3张

  图1 系统框图。

  2 软件设计

  系统以Linux 作为 *** 作系统。以S3C2440 为平台使用Linux *** 作系统,主要有U-boot 的移植,Linux 的移值,文件系统的编译烧写等几个步骤。U-boot 用于基本硬件的初始化和检测、加载引导内核和文件系统的启动。下载U-boot-1.1.1 后,对相关文件进行添加修改。配置其运行环境在S3C2440 核心板上, 然后编译得到u-boot.bin 和内核映像封装工具tools /mkimage. 引导程序boot.bin、U-boot 映像u-boot.ing 及其gzip 压缩文件u-boot.gz 三个文件构成的完整的启动加载程序。内核的设置主要是裁减和添加, 裁减不用的驱动程序和外设,添加需要的驱动。

  在Linux *** 作系统下编程,分为用户层和驱动层。用户层即为应用程序。应用程序负责数据的存储和发送;驱动程序负责对nFR2401 的连接引脚进行 *** 作。应用程序与驱动程序通过库和内核相连解决数据的传递和共享。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2663340.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-13
下一篇 2022-08-13

发表评论

登录后才能评论

评论列表(0条)

保存