DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1246|回复: 0
打印 上一主题 下一主题

[待整理] 兼容RS-232的点对点无线接口设计

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-11 17:40:05 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
随着通信、信息技术和微电子技术的飞速发展,短距离无线通信的应用步伐不断加快。在短距离无线数据通信中,目前最为成熟的三个标准是:Bluetooth, 802.11(Wi_Fi)和IrDA。RFID和UWB凭借其独有的特点成为短距离无线数据传输技术的后起之秀。
         
        RS-232接口标准是一种广泛的普及标准,但此标准推出较早,在现代金融、保险、电信和电子化网络中已暴露出明显的问题:信号线易受外界干扰;RS-232采取不平衡 传输方式,其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大约为15m。由于上述问题的存在,导致RS-232串口数据线对电压浪涌特别敏 感。目前,非交流电源线路的浪涌所引起的损害占据全部浪涌损害的一大部分。其后果是:硬件损坏、数据丢失、通信中断以及由此引起停机。
         
        为了改进RS-232通信距离短、易受外界干扰的缺点和满足PC系统需要增加无线数据传输功能的需要,设计了基于RF芯片nRF2401的兼容RS232的无线数传模块。
         
        系统设计
         
        nRF2401采用 5mm×5mm的24引脚QFN封装,具有突发传递和直接传递两种工作模式。突发传递模式以低速率向nRF2401写入待发数据,以高速率无线传输,尽量降低功耗。直接传递模式与传统RF器件工作模式一致。
         
                                                    图1 TTL/ RS232的逻辑电平转换电路
         
        nRF2401的主要特点:
         
        ● 全球开放的2.4GHz频段,125个频道,满足多频及跳频需要。
        ● 高速率( 1Mb/s),优于蓝牙技术。
        ● 外围元件极少,电压范围为1.9~3.6V,电流消耗很小,功耗很低。
        ● 发射功率和工作频率等所有工作参数可全部通过软件设置。
        ● 芯片内部设有专门的稳压电路,且无须外部SAW滤波器。
        ● 独特设计:采用DuoCeiver 技术可同时接收两个nRF2401的数据。
        ● 可通过软件设置最多40位地址,且只有收到本机地址时才会输出数据。
        ● 内置CRC校验硬件电路和协议,有数据时隙和数据时钟恢复功能。
         
        1.nRF2401的高频头设计
         
        nRF2401芯片以及其外围元件电路组成了发送接收模块。考虑到电磁兼容性,nRF2401的应用电路单独做成一块PCB。高频模块使用双层PCB,PCB设计中大量使用过孔,使顶层和底层的地充分接触,PCB的空余部分大面积连续接地。
         
                                                图2 MCU与nRF2401的直连方式
         
        2 接口电路设计
         
        RS232信号在正负电平之间摆动。发送数据时,发送端驱动器输出正电平在+5~+15V,负电平在-5~-15V。从开始传送数据到结束,线上电 平从TTL电平到RS-232电平再返回TTL电平。接收器典型的工作电平在+3~+12V与-3~-12V。选用MAX3232芯片作TTL/ RS232的逻辑电平转换。图1为TTL/ RS232逻辑电平转换的原理图电路。其中C16、C20使用1uF独石电容,C17、C19使用0.1μF独石电容。
         
                MCU与nRF2401的连接采用I/O口直接连接方式。原理图如图2所示。连接电路中采用电阻分压网络来实现AT89S52与 nRF2401的数据交互。
         
        3 软件设计
         
        nRF2401的ShockBurstTM RX/TX模式采用片上 FIFO来进行低数据率的时钟同步和高数据率的传输,因此极大地降低了功耗。ShockBurstTM发射主要通过MCU接口引脚CE、CLK1和 DATA来完成。当MCU请求发送数据时,置CE为高电平,此时的接收机地址和有效载荷数据作为nRF2401的内部时钟,可用请求协议或MCU将速率调 至1Mb/s;置CE为低电平可激活ShockBurstTM发射。nRF2401在突发模式下的帧格式如表1所示。
         
                                                             图3 程序流程图
         
        程序流程图如图3所示。
         
        nRF2401具有144位状态字。控制器将nRF2401设置为配置方式,然后由通道1向nRF2401写入状态字的配置值,写时高位在前。配置 方式下控制器写状态字的过程与激活方式下向nRF2401写入数据的过程完全相同,都经由CLK、DR和DATA组成的三线接口完成。
         
        在配置模式下,将nRF2401配置为ShockBurstTM收发模式,该模式下使nRF2401能够处理射频协议,在配置完成后,在 nRF2401工作过程中,只需改变其最低一字节中的内容,以实现接收模式和发送模式的转换。ShockBurstTM的配置字由数据宽度、地址宽度、地 址和CRC四部分组成。
         
        程序中对状态字后的120位进行配置,其值为0x20 4000 DDDDDD DD 00CC CCCC CC83 6E05。配置后nRF2401的通道1数据段长度为8字节,地址段长度为32位,通道1硬件地址为0x CCCCCCCC,使能16位CRC校验,单通道接收,工作于突发传递模式下,通信速率为1Mb/s,晶振频率为16MHz,输出功率-5dbm,工作频段为2402MHz。
         
        ①发送、接收数据的程序设计
        void ShockBurstTrans(){
        unsigned char ByteNum;
        MODE_RT;
        Delay202();
        for(ByteNum=0;ByteNum<14;ByteNum++)
        WriteTo2401(TXData);
        CE="0";
        DATA="0";
        }
        数据接收设置为中断服务程序方式。中断服务程序如下:
        void ReceiveShock()interrupt 0 using 3{
        unsigned char ByteNum;
        DATA="1";
        ; for(ByteNum=0;
        ByteNum<8;ByteNum++)
        RXData[ByteNum]=ReadFrom2401();
        }
         
        ② 串行口程序设计
         
        采用中断方式进行串口管理。串行通信中对数据流的处理采用突发处理方式。针对RAM空间有限的情况,利用软件模拟FIFO寄存器结构。
        串口的接收和发送工作是相对独立的,构建两个环形缓冲区来实现具有FIFO功能的缓冲区队列。每一个环形缓冲区都对应有写入(Ptr_Wr)和读出 (Ptr_ Rd)两个指针,从写指针到读指针之间的相对区域存储的是待发送或已接收的数据,两个指针的前后次序通过标志位(bFlag_Order)判别,当它们的 位置重合时则表示没有有效数据。读写指针相对位置与存储的数据之间的关系如图4所示。阴影部分表示有效数据。
         
                       
                                      图4 读写指针相对位置与存储数据之间的关系示意图
         
        结论
         
        随着Internet的飞速发展,从WAN到MAN,再到LAN、PAN,这些技术已逐渐成熟。无线网络在各类网络中最具增长潜力。由于各种无线标准自身的技术也有待于不断完善和提高,无线技术的应用还有很大的市场空间。
         
        nRF2401是一款性价比很高的单片无线收发芯片,利用AT89S52和nRF2401芯片设计的无线数据传输系统,成本低,体积小,应用灵活, 具有良好的通用性和可靠性。通过调试结果表明,nRF2401芯片可以与微控制器连接实现无线数据通信,进而实现了PC之间的无线通信,并且通信质量可靠稳定。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-7-22 04:44 , 耗时 0.115203 秒, 22 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表