基于C8051F的模数转换及直流电机驱动系统中的应用

发布者:Tapir最新更新时间:2007-07-02 来源: 国外电子元器件关键字:信号  开关  逼近  编程 手机看文章 扫描二维码
随时随地手机看文章

1 引言

随着微型计算机的迅速发展,单片机的性能也大大增强。本文介绍Silicon Labs公司的8位单片机C8051F001系列,该系列器件内部集成了A/D转换器,这给测量模拟信号带来了极大方便。利用单片机自身的PWM口可实现对电机数字系统的控制,提高了控制精度,大大简化了电路,符合小型化和低功耗的设计要求。

2 ADC的内部结构和特点

C8051F001/2/5/6/7系列自带一个9通道的可配置模拟开关(AMUX),一个可编程增益放大器(PGA)和一个100 kS/s,12位分辨率的逐次逼近型ADC,ADC还集成了跟踪保持电路和可编程窗口检测器。AMUX、PGA、模数转换方式和窗口检测器都可通过软件对特殊功能寄存器的设置来实现。模拟多路开关AMUX中的8个通道用于外部测量,第9通道内部接至片内温度传感器。采样的模拟量由多路开关配置后进入可编程放大器。值得注意的是,PGA的增益对温度传感器也起作用。PGA增益可以用软件编程为0.5、1、2、4、8或16,复位时的默认增益为1。可以对AMUX编程为工作在差分方式或单端方式。系统复位后AMUX的默认方式为单端输入。ADC功能框图如1所示。

3 ADC工作原理

从外围设备中采集出来的模拟量被选通后,由采样和保持电路通过PGA增益放大,经过一个12位的逐次逼近寄存器(SAR)转化为数字量,具体过程是将二进制规则变化的参考电压逐次与模拟输入电压作比较,以寻找一个与输入电压最接近的参考电压,最后在逐次逼近寄存器(SAR)中获得12位的转换结果。

4 初始化设置

设置寄存器REF0CNR的0位选择是否应用内部电压基准缓冲器,设置AMUX配置寄存器A-MUX0CF以选择模拟端口的输入方式。通道选择寄存器AMUX0SL的低3位用于选择0~7个通道或者温度传感器(AMXAD0),配置寄存器ADC0CF用来设置SAR转换时钟和ADC内部放大增益。控制寄存器ADCOCN用于设置ADC启动方式、ADC窗口比较中断及ADCOH和ADCOL的对齐方式。最后将ADCEN置1,使能ADC,准备转换数据。寄存器ADCOCN的内容如图2所示。

5 ADC的启动方式

A/D转换的启动方式有4种,由ADC0CN的ADC启动转换方式选择位(ADSTM1,ADSTM0)的状态决定。转换触发源有:

1) 写1到ADC0CN的ADBUSY位;

2) 定时器3溢出(即定时的连续转换);

3) 外部ADC转换启动信号的上升沿,CNVSTR;

4) 定时器2溢出(即定时的连续转换)。

向ADBUSY写1方式提供在需要时用软件控制ADC启动转换的性能。ADBUSY位在转换期间置1,转换结束后复0。ADBUSY位的下降沿触发一个中断(当被允许时)并置1中断标志ADCINT。注意:当转换是由软件(on-demand)启动时,应查询ADCINT标志(而不是ADBUSY)判断转换何时结束。转换结果保存在ADC数据字的MSB和LSB寄存器:ADC0H和ADC0L中。转换数据在寄存器对ADC0H:ADC0L中的存储方式可以是左对齐或右对齐,由ADC0CN寄存器中ADLJST位的编程状态决定。

6 ADC可编程窗口检测器

8051中的ADC可编程窗口检测器非常有用。它不停地将ADC输出与用户编程的限制量进行比较,并在检查到越限条件时通知系统控制器,这在中断驱动的系统中尤其有效,既可以节省代码空间和CPU带宽,又能提供快速响应时间。窗口检测器中断标志(ADCOCN中的ADWINT位)也可被用于查询方式。参考字的高字节和低字节被装入到ADC下限(大于)和ADC上限(小于)寄存器(ADC0GTH、ADC0GTL、ADC0LTH和ADC0LTL)。注意,窗口检测器标志即可以在测量数据位于用户编程的极限值以内时有效,也可以在测量数据位于用户编程的极限值以外时有效,这些全部取决于ADC0GTx和ADC0LTx的编程值。

7 实际应用

图3是直流测速发电机与单片机的接口电路。在该系统中,通过单片机口产生PWM信号控制直流电机的转速。在直流电机的轴上安装直流测速发电机,用来测量电动机的转速,测速发电机输出是模拟量,所以必须经过A/D转换将输出信号转换成数字测速信号,通过单片机将测速信号和给定的PWM信号进行比较,用于加速或减速。从而形成电动机的闭环控制系统。

该电路采用了C8051005单片机。用模拟通道0采集信号,采用2.4 V内部参考电压,模拟输入端具有限流和限压保护。直流测速发电机要与被测电机同轴,两者以相同转速转动,测速发电机的输出电压必须经过RC滤波处理后才能得到稳定的直流电压。R1为限压电阻,调整滑动变阻器的位置使测速电机达到最大转速时,滑变抽头采样得到的电压为2.4 V。通过脉宽调制PWM控制开关管工作的开关状态,栅极输入高电平时,开关管导通,12 V电压加在电动机两端,时间为t1;栅极输入低电平时,开关管截止,电动机两端电压为0,时间为t2。可得到占空比a=t1/(t1+t2)。在t2时段内,电源断开,电动机电感通过二极管D1释放电能,D1起到续流作用。

图4为产生PWM波的程序图,图5为调速子程序的流程图。









CA生成PWM波主要是调节PCA0CPH0的值改变PWM波的占空比a=[256-(PCA0CPH0)]/256。下面是调速子程序,设电机给定值存放在50H单元中。

8 进行A/D转换时应注意的问题

8.1 信号处理

C8051F内部基准电压的范围为AGND~AV±0.3 V,任意引脚在任何情况下(不论ADC或PGA的设置如何)必须使其输入电压保持在AGND和AV+之间,如果测试的模拟输入电压范围为0~5 V,必须使信号衰减才能输入ADC引脚。这里用到8051内部的PGA(可编程增益放大器)。如果选用放大倍数为0.5倍,那么信号将衰减一半。如使用外部1.25 V参考电压,PGA增益GAIN为0.5,允许的电压输入范围是0 V~2.5 V,AIN电压还必须在AGND和VREF/GAIN之间。假设一个12位的ADC,AINx引脚的输人电压小于AGND,结果将是0x000;如果输入电压大于(VREF/GAIN),结果将是0xFFF。

要注意的是,PGA不会改变信号的最大输入范围。同样当使用外部VREF时,也要求VREF的最大值比AV+小300 mV,建议采用MAX873作为外部基准电压源。

8.2 抗扰处理

C8051F的ADC转换结果一般很准确,但如果A/D转换后测得的数据跳变很大,那么很有可能是输入信号中有干扰脉冲,需要加抗扰处理:

1) 将模拟电源和数字电源分开,电源之间的电压差必须满足数据手册中的规定 D <0.5 V。

2) 将模拟地和数字地分开,不能混用。注意一定要在远离CPU处(或电源处)通过导线连接,否则会在CPU的模拟地和数字地引脚之间产生电势差,造成系统不稳定,甚至死机现象。

3) 没有用到的模拟引脚要接模拟地。

4) 在VREF引脚接0.1μF和4.7μF电容,用于滤波和抑制噪声。

5) 模拟信号的输入电压不能超过AV+-0.3 V,为保证模拟输入引脚不被高电平损伤,要采取保护措施,如加入稳压二极管MBR360等。另外为防止模拟输入通过大的电流,还要在模拟引脚和模拟地之间加一只1μF的电容。

关键字:信号  开关  逼近  编程 引用地址:基于C8051F的模数转换及直流电机驱动系统中的应用

上一篇:基于单片机89C51的异步串行接口键盘设计
下一篇:基于PIC单片机的低功耗键盘接口设计

推荐阅读最新更新时间:2024-03-16 12:22

STM32总结之GPIO编程过程
用寄存器点亮LED的过程 1:通过原理图找到要点亮的LED灯对应的GPIO口 2.通过stm32手册找到要操作的寄存器,找到这个GPIO的基地址, 基地址+地址偏移 = 目标寄存器的地址 3.编码 1.打开对应的GPIO的时钟。 2.通过操作CRL寄存器将对应的GPIO口设置为推挽输出模式,并设置一 个翻转速度 3.通过操作ODR寄存器,将电平置高或置低。 按键操作过程 1.通过原理图找到要操作的按键对应的GPIO 2.通过stm32手册找到要操作的寄存器,找到这个GPIO的基地址 基地址+地址偏移 = 目标寄存器的地址 3.编码 1.打开对应的GPIO的时钟。 2.通过操作CRL寄存器将对应的GP
[单片机]
有源箝位Flyback软开关电路设计
Flyback变换器由于其电路简单,在小功率场合被普遍采用。但是,由于变压器漏感的存在,引起开关管上过高的电压应力。普通的RCD嵌位Flyback变换器其漏感能量消耗在嵌位电阻R上,开关管上电压应力的大小取决于消耗在嵌位电阻上能量的大小。消耗在嵌位电阻上的能量越多,开关管的电压应力就越低,但也影响了整个变换器的效率,因此,普通的RCD嵌位Flyback变换器总存在着开关管电压应力与整个变换器效率之间的矛盾。 轻小化是目前电源产品追求的目标。而提高开关频率可以减小电感、电容等元件的体积。但是,开关频率提高的瓶颈是开关器件的开关损耗,于是软开关技术就应运而生。一般,要实现比较理想的软开关效果,都需要有一个或一个以上的辅助开关为主开
[单片机]
有源箝位Flyback软<font color='red'>开关</font>电路设计
光电开关电路设计方法
本文介绍了一种高可靠性的 光电开关 电路,带有稳频调制光以抗各种干扰,具有大功率驱动电路和光电三极管的自动增益控制特性,检测电路的输出级带有放大和施密特迟滞特性,确保整机的高抗干扰能力。   本电路由发光电路和光电接收电路两部分组成。它具有抗外光干扰、灵敏度可以不用人工调整,工作稳定可靠等优点,在反射式或对射式光电开关中均可应用。   1  发光电路   图1 给出了一个具有大功率输出的发光二极管驱动电路,它具有发射15kHz 调制光的能力。      图1  发光二极管的大功率驱动器   第一级4001 为单脉冲发生器,可以人工按键输出检测脉冲,用于故障维修。   为了稳定被调制光信号的频率,电路中使用了
[模拟电子]
光电<font color='red'>开关</font>电路设计方法
泰克示波器MSO64应用篇之时频多域信号频谱谐波分析
之前安泰测试为大家介绍了Spectrum View的功能特点及相关理论知识,与示波器传统的FFT测试频谱方法相比,Spectrum View具有独到的优势,那么性能优异的Spectrum View主要用于哪些场景呢?这是本文将重点介绍的内容。 本文将以泰克新一代示波器MSO64为实例来讲解时频域信号分析技术。泰克示波器MSO64采用全新TEK049平台,不仅实现了4通道同时打开时25GS/s的高采样率,而且实现了12-bit高垂直分辨率。同时,由于采用了新型低噪声前端放大ASIC—TEK061,大大降低了噪声水平,在1mv/div时,实测的本底噪声RSM值只有58uV,远远低于市场同类示波器。这些特性都是MSO64频谱模式——
[测试测量]
泰克示波器MSO64应用篇之时频多域<font color='red'>信号</font>频谱谐波分析
XS128单片机实验:读取拨码开关
#include hidef.h /* common defines and macros */ #include derivative.h /* derivative-specific definitions */ /********************************************************* //功能: 读取PORTA口拨码开关状态,通过portb 口的LED灯显示 //This is the third program of mine //已通过硬件验证; //Date: 2013/4/13 *******************************************
[单片机]
用于记录仪接口的可编程放大器
记录仪内含有增益放大器时,若选定最大输入电压以后再选定灵敏度,则可有效地使用记录低的纵轴。和机组装在一起的记录仪一般有固定量程,例如1V全量程记录仪,当输入电压很小时,要在记录仪外增加具有适当放大倍数的直流放大器。假设灵敏度为100MM/V,其量程为100MV/CM,所以放大2倍,可选用50MV/CM量程,放大4倍,选用25MV/CM,放大5倍,选用20MV/CM,放大10倍,选用10MV/CM。 电路 工作原理 为了提高输入 电阻 ,选用FET输入OP放大器进行正相连接,用旋钮 开关 切换反馈电路的分压 电阻 。因为放大倍数是分压比的例数。若反馈端的电阻R3为10K,对地电阻R可用R=R3/(A-1A)算出。A=1时对地
[模拟电子]
采用Linux与DSP/BIOS实施双OS信号处理技术
  在系统性能与编程简易性之间的权衡折中是通用操作系统与实时操作系统之间的主要区分点之一。   GPOS(通用操作系统)倾向于提供较高程度的资源抽象,这不仅可通过支持软件模块与资源隔离来提高应用的便携性、简化开发流程,同时还能增强系统的稳健性,这使 GPOS 成为诸如网络、用户界面以及显示管理等通用系统组件的理想选择。   然而,该抽象需要以系统资源的精细粒度控制作为代价,以满足信号处理代码等高强度算法的计算性能要求。对于实现这种高级别的控制,开发人员通常需要采用实时操作系统 (RTOS)。   从嵌入式信号处理角度上讲,我们通常要考虑两种类型的操作系统,即通用操作系统 Linux 与实时操作系统 DSP(数字信号处理器)/BIO
[嵌入式]
西门子S7-1500如何读取机器人信号
方法一 DPRD_DAT:读取 DP 标准从站的一致性数据 该指令适用于中央模块以及 DP 标准从站和 PROFINET IO 设备。 可以使用以下数据类型:BOOL,BY TE ,CHAR,WCHAR,W OR D,LWORD,DWORD,INT,UINT,USINT,SINT,LINT,ULINT,DINT,UDINT,REAL,LREAL。在类型为 ARRAY 或 STRUCT 的数据结构中也可使用这些数据类型。 o 不支持数据类型 STRING 和 WSTRING 。 o 支持 PLC 数据类型 (UDT) 和系统数据类型。 • 如果在数据传输过程中未发送任何错误,则所读取的数据将输入到 参数 RECO
[嵌入式]
西门子S7-1500如何读取机器人<font color='red'>信号</font>
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

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

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