一款带模数转换的单片机设计
2016-02-05胡子阳谭延军
胡子阳,谭延军
(中国电子科技集团公司第四十七研究所,沈阳110032)
一款带模数转换的单片机设计
胡子阳,谭延军
(中国电子科技集团公司第四十七研究所,沈阳110032)
随着电路系统体积的不断缩小,应用上希望在单个芯片上嵌入更多的电路功能。而模数转换器和单片机的组合,能够从相当程度上满足应用需求,并有效缩小电路板的体积和重量。研究如何在MCS51单片机的基础上,嵌入12位SAR型模数转换器。嵌入的难点在于单片机本身工作在较高的频率下,自然会对A/D的转换精度造成一定影响,并且CMOS的工艺精度只能达到10位精度的匹配效果,要想达到12位A/D,必须进行修调设计。通过对单片机内部的研究,提出了从SFR区嵌入A/D控制功能,并利用上电复位的时间,从flash加载修调码至A/D转换器。结果显示,12位模数转换器能够有效嵌入单片机并达到预计精度。
单片机;CMOS集成电路;模数转换器;逐次逼近;修调;片上系统
1 引 言
MCS51单片机是传统单片机的主流架构,一直以来被广泛应用。与之相应的是,在要求低功耗等领域,逐次逼近型模数转换器也有广泛应用。并且在很多场合,比如温度和压力检测等领域,单片机往往搭配A/D共同使用,这样就形成了单片机和模数转换器相结合的需求[1]。
在工艺制造角度上,单片机采用带有flash的CMOS工艺,而A/D转换器也可以采用CMOS设计制造,因此单片机和A/D转换器可以在工艺上同时实现。
2 单片机架构
MCS51单片机有16位的flash和RAM寻址空间,其中64K的外RAM寻址空间一般用于单片机和外设进行配合及扩展。在存储器内部总线上,单片机包含256字节的寻址空间(如图1所示),这一空间的特点就是直接连接在内部总线上,所以操作速度快。单片机的低128字节寻址空间被用作程序区空间,所以这一空间(包含位寻址空间)对于用户来讲完全开放,因此无法在此空间进行嵌入。单片机的高128位直接寻址空间,用于存放特殊功能寄存器,又叫特殊功能寄存器区(SFR)。比如累加器和P1~P3口等寄存器,都通过直接寻址在此空间找到对应的寄存器。SFR区可以被直接寻址,并且空间没有填满,所以要想通过单片机扩展A/D转换器,通过SFR扩展是最佳选择[2]。
A/D转换器除了指定嵌入的特殊功能寄存器外,还必须嵌入中断系统,这样才能保证A/D转换完成的信息,通过中断系统通知单片机[3]。设计中采用了0E6H和0E7H两个直接寻址字节来控制A/D采样,并得到A/D输出。当0E6H的bit7位被写1后,A/D即开始执行一条转换指令,转换完成后,会触发43H处的中断,并以0E6H的bit6位置1,来标识转换结束,并且中断已经触发。当0E6H的bit6位被写0后,A/D可以开始下一次转换过程。转换的结果,高4位占据0E6H的bit3~bit0,低8位占据0E7H。
图1 MCS51单片机的地址空间分配
3 模数转换部分设计
模数转换器可以按结构分成逐次逼近型、Pipeline型和Delta-Sigma型。一般来讲,逐次逼近型速度较低,转换精度最高达到18位,被广泛应用于低功耗、便携式领域;Pipe-line型面向高速领域,此领域大多数配置DSP等高速处理器形成处理系统;Delta-Sigma型在转换过程中需要多次采样,因此面向专用领域,通过数字滤波算法来实现高精度,有的可达32位精度,也可以和单片机相结合[4]。
逐次逼近型A/D转换器功耗很低而且通用型强,因此首先在嵌入式单片机领域获得了广泛引用。对于SAR架构的A/D转换器,可以选择电容架构和电阻架构。因为集成电路工艺的精度原因,目前无论是电容匹配能力还是电阻匹配能力,都只能达到10位精度,所以选择电容结构的模数转换器。以方便后期的修调操作。
传统意义上采用开关电容实现逐次逼近式模数转换,主要依据开关电容的电荷守恒原理,对电容充电及电荷再分布两个工作阶段,对模拟量进行逐次比较,最终实现数据转换。传统的逐次逼近系统的简化模型如图2所示[5]。
由图2可知,若要实现12位逐次逼近型ADC,需要对电容进行2的幂次方加权排列,以最低位为单位标准电容,那么最高则需要4096个单位电容,这就存在一种矛盾。若对单位电容赋值太低,电路无法避免噪声和寄生效应带来的影响,最终影响ADC的线性度,无法实现12位分辨精度;若对单位电容赋值太高,整体电容总值过大,输入源难以驱动,无法保证转换速度。因此,传统的开关电容排列不适合应用到8位以上的ADC中,而且这种排列占据了大量的芯片面积,并不符合现代芯片设计高集成度、小型化的发展趋势。
图2 传统的逐次逼近系统简化模型
考虑到尽可能的缩小芯片面积,降低成本,提高芯片性能,采用另一种开关电容排列方式来实现逐次逼近转换,其简化模型如图3所示。
由图3可知,开关电容分为两个阵列,左面阵列实现高5位逐次逼近,右面阵列实现低7位逐次逼近,两个阵列通过Cc电容串接,其值主要由高阵列最低位电容、低阵列最低位电容及低阵列寄生电容决定。工作原理与传统的开关电容阵列一样。充电阶段,输入模拟量向电容整体充电,ST开关闭合,Sc开关闭合,符合采样时间要求;保持阶段,Sc开关打开,ST仍闭合;再分布阶段,ST开关打开,电路开始将采集到的模拟量与电容提供的基准电压逐次比较,最终转换成数字码。通过两种排列方式比较可以明显看出,图4采用更少的开关电容实现12位逐次逼近的功能,大大缩小了芯片面积,是一种可实现的架构。
图3 逐次逼近系统简化模型
图4 带修调结构的逐次逼近型A/D结构
电容匹配误差是限制ADC精度的关键因素。以现阶段工艺水平为基准,模数转换器仅能实现10位分辨率,若对转换速率有更高的要求,需要用更小的单位电容,这个值可能还要进行折衷。在实现10位以上逐次逼近型ADC的时候,需要同时设计出一套修调电路,来满足ADC的精度要求。对ADC精度修调方式,通常采用附加一定量的电容或电阻阵列,输入修调码,达到理想设计的分辨精度。
带修调电路的逐次逼近型模型如图4所示,电路中主要对串联耦合电容误差、高4位电容误差、失调误差及增益误差进行修调[6]。
模型包括12位主电容阵列,4个高4位电容修调阵列(C12~C9)。前2位由8位电容组成的阵列进行修调,后2位由7位电容组成的阵列进行修调,修调范围±8LSB;1个耦合电容修调阵列CP,由7位电容组成的阵列进行修调,修调范围±2LSB;1个失调误差阵列OS,由6位电容组成的阵列进行修调,修调范围±4LSB;1个增益误差阵列GAIN,由8位电容组成的阵列进行修调,修调范围±8LSB。
传统A/D采用熔丝烧结实现固定存储器来存储修调码。由于单片机本身带有flash存储功能,而且flash里面有512字节的存储空间可以用于存储出厂信息,因此可以用此flash空间,在上电过程中进行加载,以便为A/D电路配置12位精度范围[7]。
4 单片机嵌入A/D的总体方案
最终单片机嵌入A/D的总体方案如图5所示。通过内部总线,连接SFR区,并设置单片机的两个SFR寄存器(0E6H和0E7H),通过这两个寄存器和A/D转换器的控制端相连,实现单片机对A/D的控制。
图5 单片机嵌入A/D的总体方案
由于A/D在工艺过程中,不同的位置会出现不同的电容匹配。所以对于每一个A/D,都需要单片机首先给出不同的修调码修调,才能达到精度要求。单片机在出厂前,首先要进行修调码的测试、计算和写入。在出厂后,单片机在上电复位期间,要从flash中调出8个字节,并依次写入修调阵列,修调阵列能够保证把INL、DNL、offset和Gain error的失配降到最低,使之达到12位的线性度。
5 流片结果
单片机采用GSMC 0.18μm带flash的工艺设计加工,整个芯片达到了预期目标。A/D修调前的INL曲线如图6所示,可以看出电容失配造成的影响,尤其是高位电容失配的影响很大。经过一阶修调算法进行的修调结果如图7所示,虽然修调匹配了电容误差,但是在2048处形成了较明显的拐点,证明一阶修调虽然能够把INL曲线修至1LSB以内,但仍有明显的积分非线性误差存在。经过二阶修调算法进行的修调结果如图8所示,经过二阶修调,通过修调电容的整体弥补,使得INL曲线接近理想状态[8]。
图6 未经修调的INL曲线
图7 采用一阶修调算法得到的INL修调曲线
6 结束语
逐次逼近型A/D和单片机的结合,目前能够见到的主流器件,基本上只达到12位的水平。但是从本文的方法上看,该架构也可实现14位A/D的水平。但是如果希望达到16位的嵌入水平,就需要A/D转换器采用新的架构调节方式。单片机不仅限于MCS51单片机,对于32位的ARM单片机,也可采用同样的方法嵌入A/D转换器。
图8 采用二阶修调算法得到的INL曲线
[1] 王剑峰,吴龙胜,许军,等.航天用SoC发展思考[J].航天标准化,2011(1):31-34. WANG Jianfeng,WU Longsheng,XU Jun,et al.Considger about Spaceflight SOC Development[J].Spaceflight Standardization,2011(1):31-34.
[2] 杨明莉.基于单片机的压电加速度传感器低频信号采集系统的设计[D].合肥:安徽大学,2007. YANG Mingli.A Design of The Piezoelectric Accelerometer’s Low-Frequency Signal Gathering System Based on MCU[D].Hefei:Anhui University,2007.
[3] Atmel corporation.AT89S52 DATA SHEET,revision D[Z].Atmel corporation,2008.
[4] 陈娟娟,钟德刚,徐静平.用于便携式设备的12位低功耗SAR A/D转换器[J].微电子学,200828(3):401-403. CHEN Juanjuan,ZHONG Degang,XU Jingping.A Low-Power 12-Bit SAR A/D Converter for Portable Devices[J].Microelectronics.2008,28(3):401-403.
[5] 张诗娟.12位逐次逼近型A/D转换器的设计[D].武汉:华中科技大学,2005. Zhang Shijuan.Design of a 12-bit Successive Approximation Analog-to-Digital Converter[D].WuHan:Huazhong University of Science&Technology,2005.
[6] 周文婷,李章全.SAR A/D转换器中电容失配问题的分析[J].微电子学,2007,37(2):199-203. ZHOUWenting,LEE Changchuan.Analysis of Capacitor Mismatch Effect in SAR A/D Converter[J].Microelectronics,2007,37(2):199-203.
[7] 万辉,马丹,张靖,等.16位逐次逼近A/D转换器熔丝误差修调技术[J].微电子学,2011,41(3):363-366. WAN Hui,MA Dan,ZHANG Jing,et al.Fuse-Error Correction for 16-Bit Successive Approximation Register A/D Converter[J].Microelectronics,2011,41(3):363-366.
[8] 罗业平.A/D转换芯片测试方法及应用[J].信息与电子工程,2005,3(2):123-125. LUO Ye-ping.Testing Method and Application of A/D Converters[J].INFORMATION AND ELECTRONIC ENGINEERING,2005,3(2):123-125.
A Microcontroller W ith On-chip A/D Converter
Hu Ziyang,Tian Yanjun
(The47th Research Institute of China Electronics Technology Group Corporation,Shenyang 110032,China)
With the size reduction in electronic system,the requirement ofmore functions integrated into a single chip is produced.So analog to digital converter combining with microcontroller will be used in more applications,such as reducing the size and weight.A way to embed a 12 bit SAR A/D converter into MCS51 microcontroller is discussed.The difficulties are made from the Microcontroller's working speed and CMOS process precision.The designmust be fixable if12 bit precision needs to be achieved. A/D control circuit is embedded in SFR,and the fixed code is transferred from flash by means of reset timing.Test result shows that 12 bit A/D converter can be embedded into microcontroller and get the aimed precision.
Microcontroller;CMOS;A/D converter;SAR;Fix;SOC
10.3969/j.issn.1002-2279.2016.06.002
TN47
B
1002-2279(2016)06-0005-04
胡子阳(1978-),男,辽宁省铁岭市人,高级工程师,硕士,主研方向:集成电路设计与应用。
2016-01-25