基于嵌入式系统的实时控制模块设计方案

发布者:EnchantedHeart最新更新时间:2013-09-06 来源: dzsc关键字:嵌入式系统  实时控制模块  C8051F120 手机看文章 扫描二维码
随时随地手机看文章

  随着现代通信技术的发展,通信测试仪器不断推陈出新。各种新型设备对系统的实时响应能力的要求越来越高,一种通信测试仪器的实时响应性能,就成为系统设计能否成功的关键因素之一。笔者曾在多个通信测试仪器项目中,成功地应用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的电气连接图。[page]

  单片机与上位计算机的通信使用通用异步收发器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为核心控制芯片的嵌入式系统的实时控制模块设计方案,已成功应用于某通信测试仪器中,陔系统通过中断及查询等方式较好地实现了对整机的实时控制功能。

关键字:嵌入式系统  实时控制模块  C8051F120 引用地址:基于嵌入式系统的实时控制模块设计方案

上一篇:STC89C58RD+单片机在MP3播放器设计中的应用
下一篇:基于GPS和GSM网络的汽车防盗系统 2013-07-22

推荐阅读最新更新时间:2024-03-16 13:27

RTOS在STM32中的应用
文章将介绍实时操作系统RTOS,分析为什么在嵌入式系统中使用它。 什么是实时操作系统 操作系统的定义: 一个计算机系统可以大致分为四个部分:硬件(Hardware),操作系统(operating system),应用程序(application programs),使用者(user)。 硬件包含了CPU,存储空间,输入输出设备等为整个系统提供了基础的计算资源。 操作系统是一个控制程序,作为硬件和应用程序之间的桥梁,主要是和硬件打交道,负责协调分配计算资源和内存资源给不同的应用程序使用,并防止系统出现故障。面对来自不同应用程序的大量且互相竞争的资源请求,操作系统通过一个调度算法和内存管理算法尽可能把资源公平,有效率地分配给不同的
[单片机]
RTOS在STM32中的应用
嵌入式系统应用中的USB主设备功能分析
    USB已经成为设备和PC之间通信的标准方式,从通用设备(如闪存设备和鼠标)到专用设备,该标准几乎完全替代了其他的串行通信协议。     USB外围设备彼此之间不能相互通信,它们只能与具有控制总线能力的USB主设备通信。直到最近,也只有PC具有主设备能力。但目前,许多微控制器也具有了嵌入式USB主设备的功能,这使得嵌入式应用可以连接更加广泛的USB外围设备。     USB闪存驱动器是一种使用非常广泛的USB外围设备,它已经成为传递或存储大量数据的廉价介质,许多数据记录设备正是得益于它才得以发展。对于远程的长期数据记录,可以先采集,并存储在闪存驱动器中,然后带回到方便分析处理的地方。     闪存驱动器也可以用于
[嵌入式]
ARM7嵌入式系统中启动程序的实现
在我们研制开发基于ARM7的嵌入式系统过程中,发现技术难点主要在于系统启动程序的编写,为此本文详细论述了在arm7基础上开发嵌入式系统时启动程序的实现。 1.启动程序流程 嵌入式系统的资源有限,程序通常都是固化在ROM中运行。ROM中程序执行前,需要对系统硬件和软件运行环境进行初始化,这些工作由用汇编语言编写的启动程序完成。 启动程序是嵌入式程序的开头部分,应与应用程序一起固化在ROM中,并首先在系统上运行。它应包含进各模块中可能出现的所有段类,并合理安排它们的次序。 写好启动程序是设计好嵌入式程序的关键,系统启动程序所执行的操作依赖于正在开发其软件的系统,一般流程如下: 进入应用程序主循环 2.详细步骤 ⑴设置入口指针 启动程序
[单片机]
基于硬件隐藏思想设计MCF5307嵌入式系统驱动程序
1引言 嵌入式系统软件人员经常读取系统外设寄存器和控制寄存器,直接控制硬件,这样对软件开发者来说是一种繁复的事,而且嵌入式微处理器内部集成外设种类越来越多,如串口设备、时钟/定时器设备、IIC总线等,对嵌入式编程带来更多的困难。如果读写硬件的语句散布在整个应用程序中或者不同的功能模块可能会读写同一个硬件,那么当系统硬件发生变动时,应用程序就必须全盘重写。怎么避免这样的情况?一个好的方法就是按照尽量隐藏硬件的原则编制设备驱动程序。 在设计驱动程序中尽量隐藏硬件,有几个优点:①因为模块化,软件的总体结构更容易理解; ②只要是与某一个外设相互作用,必然是通过他的驱动程序来起作用的,这样查找错误和故障就更容易些; ③由硬件的变动导
[单片机]
基于硬件隐藏思想设计MCF5307<font color='red'>嵌入式系统</font>驱动程序
汽车嵌入式系统中如何选择单片机的架构
  MCU(Microcontroller Unit,微控制器,简称单片机)是电子控制模块(ECM)的基础,它广泛应用于安防系统、舒适驾乘系统、底盘系统、驾驶信息系统等领域中。在汽车电子行业中,8位和16位MCU的使用仍在不断扩展。在即将推出车型设计的汽车电子系统中,8位和16位单片机用量继续占据超过75%的比例。在嵌入式控制设计人员所面临的众多挑战中,最重要的两个问题分别是如何更快地将项目推向市场和将开发成本控制在预算之内。   对于大多数汽车嵌入式系统开发人员的开发战略以及ECM生产商的供应战略来说,正确选择8位或16位MCU架构至关重要。MCU的选择会影响设计、采购、生产以及销售的众多环节。   汽车电子模块生产商正在力
[单片机]
汽车<font color='red'>嵌入式系统</font>中如何选择单片机的架构
M16C62在uC/OS-II嵌入式系统中的应用
  前言   随着微电子技术和网络的发展,人们对网络的认识日益深入。网络终端产品也越来越受到人们的关注,嵌入式操作系统的应用也得到了前所未有的发展,人们对嵌入式的研究也有了长足的进步。基于某个操作系统的实时、多任务系统的设计合应用成为单片机应用的新的发展趋势。   uC/OS是一个公开源代码的嵌入式操作系统,uC/OS-II是由uC/OS V1.1版升级而来,在原来版本的基础上,uC/OS-II有了许多新功能,如:内存管理;在任务建立、删除、任务切换、时钟节拍切换处理过程中,允许用户调用自定义的函数;支持任务控制块(TCB)功能扩展;能效验各堆栈使用情况;以及其它一些新功能【2】。M16C62单片机是三菱公司在90年代末推
[嵌入式]
基于ARM-μCLinux嵌入式系统启动引导的实现
   32位ARM嵌入式处理器具有高性能、低轼耗的特性,已被广泛应用于消费电子产品、无线通信和网络通信等领域。ΜCLinux是专门为无MMU处理器设计的嵌入式操作系统,支持ARM、Motorola等微处理器。目前国内外采用ARM-μCLinux作为嵌入式系统非常普遍。而嵌入式系统的启动引导技术是嵌入式系统开发的一个难点。系统启动引导的成功与否决定了应用程序的运行环境是否能正确构建,即系统启动成功是应用正确运行的前提。 常用的嵌入式系统启动方法是先通过JTAG将嵌入式操作系统内核与进Flash,再由其带的引导程序bootloader完成嵌放式系统的启动引导工作。这种方法要借助昂贵的JTAG设备完成操作系统内核 的烧写工
[嵌入式]
基于ARM处理器的便携式心电血压检测仪
    近年来,心脏病和高血压的患病率逐年增高,动态心电图和血压监测为心血管疾病的预测、诊断和评估提供了极有价值的信息。随着嵌入式系统在医用仪表中的广泛应用,本文介绍了一种以Samsung公司的S3C44B0X为核心的集血压和心电检测功能于一体的便携式家庭健康监护系统,该系统充分利用ARM的片内资源,实现了人体心电、血压信号的采集、显示、打印和传输。仪器硬件主要由S3C44B0X主控芯片、心电放大电路、血压检测模块、存储系统及外围接口电路组成,系统结构框图如图1所示。S3C44B0X内置的A/D转换器用于采集心电信号和血压信号,LCD用于显示数据,微型打印机用于输出心电图波形,用户可通过外接PS2键盘控制系统的工作状态,包括选择检
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved