基于C51的嵌入式实时控制模块的设计与实现
随着现代通信技术的发展,通信测试仪器不断推陈出新 。各种新型设备对系统的实时响应能力的要求越来越高,一种通信测试仪器的实时响应性能,就成为系统设计能否成功的关键因素之一 。笔者曾在多个通信测试仪器项目中,成功地应用ARM处理器、C51单片机等为主控芯片的嵌入式系统,实现了对仪器相关模块的实时控制功能 。因此提出一种在某通信测试仪器中使用C51单片机来实现实时控制的设计方案 。
1 硬件设计与实现
【基于C51的嵌入式实时控制模块的设计与实现】1.1 总体方案设计
在该通信测试仪器中,实时控制模块主要实现对射频接收频综、射频发生频综、滤波器组件、射频输入模块、射频输出模块等实时控制作用 。对射频检波信号进行A/D转换以获取数据 。与上位计算机进行通信等功能 。
根据待实现的系统功能要求,综合考虑系统资源,及芯片性价比等因素,确定采用以C51单片机为主控芯片的嵌入式系统方案,芯片为SiliconLabs的C8051F120,具有128 kB片内Flash存储器、8×1 024+256 Byte的片内RAM,可寻址64kB地址空间的外部数据存储器接口、SPI、UART、定时器、时钟振荡器、PLL等,片上外设资源丰富、控制方便 。
系统资源分配:射频接收、发射频综模块,内含DDS,PLL等,外部控制接口是微控制接口,因此直接用单片机的地址、数据、控制三总线实施控制 。滤波组件、射频输入/输出模块等的工作状态与接口上信号电平高低有关,因此用GPIO的方式进行控制 。A/D转换控制使用串行外围设备接口SPI.与上位机的通信使用RS-232串口 。总体设计框图如图1所示 。
1.2 总线及I/O控制的设计
对于射频接收频综、射频发射频综模块,直接采用总线控制,为避免不同的模块控制时相互干扰,用3-8译码器对总线地址译码,产生不同模块的片选信号 。同时数据线通过总线收发器以提高带负载能力 。对于滤波组件、射频输入/输出等用I/O控制的模块,并未直接使用51芯片的GPIO引脚,则是将数据总线经锁存后模拟GPIO信号供相关模块使用,如图2所示,其中,IO_/WR1由B_/CS7与单片机写线逻辑或后产生 。
1.3 SPI及RS232控制接口
C8051F120芯片上本身自带了A/D转换器,但只有12位,不适合该系统的需求,故在片外另加一片ADI公司的AD7707.其分辨率为16位,是∑-△体系结构,转换的是输入电平的平均值 。三通道,输入电平范围可达±10 mV~±10V.根据实际要求,该系统使用AIN3高电平输入端口,Unbuffered模式,HICOM、REF-接模拟地,VBIAS与REF+均接+2.5V参考电压,模拟电源5 V,数字电源3.3 V,能检测输入范围为0~10V的单极性电平 。其控制接口是同步串行口,用51芯片的SPI直接控制 。图3是AD7707的电气连接图 。
单片机与上位计算机的通信使用通用异步收发器UART,外接MAX3224,将UART信号转换为RS-232信号进行传输,MAX3224在 3~5.5V低电压下工作,却可产生RS-232的±12 V电压,只需连接Tx、Rx和地线即可实现异步串行通信 。系统中仍有一些时钟、复位电路和电源等,在此不再赘述 。
2 软件设计与实现
2.1 主程序框架
主程序流程图如图4所示 。
主程序是顺序结构,较为简单 。主要分两部分:一是对系统各部分进行初始化设置,使其能够工作在正常状态 。二是正常工作循环状态,当收到上位机的控制命令时,即进行相应的操作,无命令时则等待 。对于嵌入式程序而言,无限循环是必要的 。
2.2 串口通信程序
串口通信程序实现与上位机的通信功能 。具体操作中使用一个循环队列存放接收到的上位机命令,分别用头指针和尾指针指向队头和队尾,将各命令字节取出,进行相应操作 。命令执行完毕(队列取空),清标志位,等待新命令 。如图5所示 。
2.3 SPI通信程序
C51采用SPI主模式与AD7707进行通信 。主模式写AD7707较为简单,单片机先写1Byte的配置数据给AD7707,其会自动将该数据放入自身的通信寄存器,随后AD7707根据该配置值确定下一步要写的寄存器及数据大小,再将单片机随后输入的数据放入指定位置 。C8051F120发数据前,先根据SPICN寄存器的TXBMT位的值判断是否能够发送数据,再向自身的SPIDAT寄存器写数据即可,硬件会自动将数据发出 。
主模式读AD7707较为困难 。当C51已设置AD7707的通信寄存器,表明下一步操作是读AD7707的某个寄存器值后,C51向SPIDAT写任意值,之后SPI数据线(MOSI)上会串行移出数据,同时时钟线上产生串行时钟,从设备(AD7707)收到时钟,将预备的数据送到MISO线上交给C51,同时不采纳主设备发送的任意值 。C51将发送的串行数据放在移位寄存器中,当最后一位收到后即移入收缓冲器,再读SPIDAT便可读出数据 。
2.4 其他软件模块
其他软件模块均是根据各部分硬件的具体要求,通过向所分配的对应地址空间按序发送所需数据来实现相关功能 。
3 结束语
文中提出以C51单片机C8051F120为核心控制芯片的嵌入式系统,已成功应用于某通信测试仪器中,陔系统通过中断及查询等方式较好地实现了对整机的实时控制功能 。
推荐阅读
- 基于RS485总线的温湿度监控系统设计
- 阿里腾讯京东入场,二手电商的“春天”在哪里?
- 微软将发布基于区块链的数字身份系统
- 感情破裂的夫妻怎样拯救婚姻?这样做,婚姻仍然会很美好
- 这3种越轨的男人不值得宽恕,由于他们很简单再次越轨
- 遭受老公越轨,沉着的妻子这样做之后,成功逆袭!
- 女性该怎么面临越轨的老公?“被变节”这件事,让人堕入对自我与别人的深度质疑
- “本来想和男朋友分手,可是无意间看到他的日记,我害怕了”哈哈
- 为啥夫妻之间的爱情简单“蜕变”?由于不懂得增进互相和共处技巧
- 拯救必看:男人越轨的4个心思阶段