保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

μC/OS-II实时内核下的A/D驱动程序设计


执行中断返回指令(即RETI);

}

在这种方法里,要求ISR执行时间与调用等待信号的时间之和为A/D转换时间。

如果A/D转换时间小于处理中断时间与等待信号所需的时间之和,则可以用第三种方法。如图3所示,前两步(①②同以上两种方法)结束后,驱动程序接着在一个软件循环中等待(③)ADC直到完成转换。在循环等待时,驱动程序检测ADC的状态(BUSY)信号。如果等待时间超过设定的定时值(软件定时),则结束等待循环(循环等超时)。如果在循环等待中,检测到ADC发出转换结束的信号(BUSY)时,驱动程序读取ADC转换结果(④)并将结果返回到应用程序(⑤)。驱动程序伪代码如下:

ADRd(ChannelNumber){

选择要读取的模拟输入通道;

等待AMUX输出稳定;

启动ADC转换;

启动超时定时器;

while(ADC Busy & Counter 0);/*循环检测*/

if(Counter==0){

*err=信号错误;

return;

}else{

读取ADC转换结果并将其返回到应用程序;

}

}

A、D转换速度快,这种驱动程序的实现是最好的。

2 C8051F015单片机的A/D转换器

2.1 C8051C015单片机

C8051C015的美国Cygnal公司新推出的高速SOC型C8051Fxxx系列单片机。它的内核CIP-51与MCS-51的指令集完全兼容,CIP-51的系统时钟频率在0~25MHz。C8051Fxxx系列单片机采用流水线结构,与标准的8051相比,指令执行速度有很大的提高。CIP-51内核的指令执行时间是以系统时钟为单位,70%的指令执行时间为1个或2个系统时钟周期。C8051F015具有32KB的内存、2304B的RAM(片内256B、片外2048B)。CIP-51内核具有标准8052的所有外设部件,片上还集成有9通道10位A/D转换接口电路、SMBus/I2C、SPI串行接口。

2.2 C8051F015的A/D转换电路

C8051F015的A/D转换电路包括1个9通道可配置模拟多路开关AMUX(8路用于外部模拟输入、1路用于芯片环境温度的测量)、1个可编程增益放大器PGA和1个100ksps 10位分辨率的逐次逼近型ADC。A/D中还集成了跟踪保持电路和可编程窗口检测器。

ADC有4种启动方式:软件命令、定时器2溢出、定时器3溢出及外部信号输入。寄存器ADC0CN是配置启动和跟踪方式的控制寄存器。每次转换结束时,ADC0CH的ADBUSY(忙标志)的下降沿触发中断,也可用软件查询这个状态位。

2.3 ADC转换速度

C8051Fxxx系列单片机中ADC的速率都是可编程设置的。表1给出了所需最小分频系数与SYSCLK(系统时钟)的关系(ADC0CF为ADC配置寄存器)。

表1 ADC时钟分频系数与SYSCLK频率的关系

SYSCLK频率/MHz ADC时钟分频系数 ADC0CF的ADCSC2~1

《μC/OS-II实时内核下的A/D驱动程序设计(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/140536.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。