基于C51单片机的通信测试仪器控制设计

随着现代通信技术的发展,通信测试仪器不断推陈出新。各种新型设备对系统的实时响应能力的要求越来越高,一种通信测试仪器的实时响应性能,就成为系统设计能否成功的关键因素之一。笔者曾在多个通信测试仪器项目中,成功地应用arm处理器、c51单片机等为主控芯片的嵌入式系统,实现了对仪器相关模块的实时控制功能。因此提出一种在某通信测试仪器中使用c51单片机来实现实时控制的设计方案。
1 硬件设计与实现
1.1 总体方案设计
在该通信测试仪器中,实时控制模块主要实现对射频接收频综、射频发生频综、滤波器组件、射频输入模块、射频输出模块等实时控制作用。对射频检波信号进行a/d转换以获取数据。与上位计算机进行通信等功能。
根据待实现的系统功能要求,综合考虑系统资源,及芯片性价比等因素,确定采用以c51单片机为主控芯片的嵌入式系统方案,芯片为silicon labs的c8051f120,具有128 kb片内flash存储器、8×1 024+256 byte的片内ram,可寻址64 kb地址空间的外部数据存储器接口、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~±10 v.根据实际要求,该系统使用ain3高电平输入端口,unbuffered模式,hicom、ref-接模拟地,vbias与ref+均接+2.5 v参考电压,模拟电源5 v,数字电源3.3 v,能检测输入范围为0~10 v的单极性电平。其控制接口是同步串行口,用51芯片的spi直接控制。图3是ad7707的电气连接图。
单片机与上位计算机的通信使用通用异步收发器uart,外接max3224,将uart信号转换为rs-232信号进行传输,max3224在 3~5.5 v低电压下工作,却可产生rs-232的±12 v电压,只需连接tx、rx和地线即可实现异步串行通信。系统中仍有一些时钟、复位电路和电源等,在此不再赘述。
2 软件设计与实现
2.1 主程序框架
主程序流程图如图4所示。
主程序是顺序结构,较为简单。主要分两部分:一是对系统各部分进行初始化设置,使其能够工作在正常状态。二是正常工作循环状态,当收到上位机的控制命令时,即进行相应的操作,无命令时则等待。对于嵌入式程序而言,无限循环是必要的。
2.2 串口通信程序
串口通信程序实现与上位机的通信功能。具体操作中使用一个循环队列存放接收到的上位机命令,分别用头指针和尾指针指向队头和队尾,将各命令字节取出,进行相应操作。命令执行完毕(队列取空),清标志位,等待新命令。如图5所示。
2.3 spi通信程序
c51采用spi主模式与ad7707进行通信。主模式写ad7707较为简单,单片机先写1 byte的配置数据给ad7707,其会自动将该数据放入自身的通信寄存器,随后ad7707根据该配置值确定下一步要写的寄存器及数据大小,再将单片机 随后输入的数据放入指定位置。c8051f120发数据前,先根据spicn寄存器的txbmt位的值判断是否能够发送数据,再向自身的spidat寄存 器写数据即可,硬件会自动将数据发出。
主模式读ad7707较为困难。当c51已设置ad7707的通信寄存器,表明下一步操作是读ad7707的某个寄存器值后,c51向spidat写任 意值,之后spi数据线(mosi)上会串行移出数据,同时时钟线上产生串行时钟,从设备(ad7707)收到时钟,将预备的数据送到miso线上交给 c51,同时不采纳主设备发送的任意值。c51将发送的串行数据放在移位寄存器中,当最后一位收到后即移入收缓冲器,再读spidat便可读出数据。
2.4 其他软件模块
其他软件模块均是根据各部分硬件的具体要求,通过向所分配的对应地址空间按序发送所需数据来实现相关功能。
3 结束语
文中提出以c51单片机c8051f120为核心控制芯片的嵌入式系统,已成功应用于某通信测试仪器中,陔系统通过中断及查询等方式较好地实现了对整机的实时控制功能。
来源;21ic

贴片电感的识别方法及故障更换方法
差分示波器测量
小米note3和魅蓝note6哪个好?从外观到配置一文对比详解
小米6快要来了!小米6最新最靠谱的配置是这样的
Analog推出电源隔离RS-485数据收发器ADM2682E和ADM2687E
基于C51单片机的通信测试仪器控制设计
微软Surface Book的铰链机制有望得到改善
MIUI 10全新设计语言带来软硬一体的全面屏体验
Intel将发布全新的Agilex FPGA芯片
华米科技 Amazfit GTS 2 颜值最高的智能手表
Altium Designer 23.4.1版本新功能说明
光耦的选择与替换
飞行汽车将是自动驾驶、传感器、5G等系列技术应用的关键场景
光电开关计数器采集模块 PNP/NPN转485Modbus RTU模块
适应用于到移动终端设备中的小型宽带开口缝隙天线的设计
2022年起苹果iPad/Mac将开始OLED化之旅
上市公司发展区块链是为了技术还是蹭热点
双绞线即网线每根芯的作用是什么?常用超五类双绞线和六类双绞线连接方法
谁摘得2018高工LED金球奖桂冠
5G频谱竞标10日开始 台湾3500Mhz频段成争夺焦点