胡子陽,譚延軍
(中國電子科技集團公司第四十七研究所,沈陽110032)
一款帶模數轉換的單片機設計
胡子陽,譚延軍
(中國電子科技集團公司第四十七研究所,沈陽110032)
隨著電路系統體積的不斷縮小,應用上希望在單個芯片上嵌入更多的電路功能。而模數轉換器和單片機的組合,能夠從相當程度上滿足應用需求,并有效縮小電路板的體積和重量。研究如何在MCS51單片機的基礎上,嵌入12位SAR型模數轉換器。嵌入的難點在于單片機本身工作在較高的頻率下,自然會對A/D的轉換精度造成一定影響,并且CMOS的工藝精度只能達到10位精度的匹配效果,要想達到12位A/D,必須進行修調設計。通過對單片機內部的研究,提出了從SFR區嵌入A/D控制功能,并利用上電復位的時間,從flash加載修調碼至A/D轉換器。結果顯示,12位模數轉換器能夠有效嵌入單片機并達到預計精度。
單片機;CMOS集成電路;模數轉換器;逐次逼近;修調;片上系統
MCS51單片機是傳統單片機的主流架構,一直以來被廣泛應用。與之相應的是,在要求低功耗等領域,逐次逼近型模數轉換器也有廣泛應用。并且在很多場合,比如溫度和壓力檢測等領域,單片機往往搭配A/D共同使用,這樣就形成了單片機和模數轉換器相結合的需求[1]。
在工藝制造角度上,單片機采用帶有flash的CMOS工藝,而A/D轉換器也可以采用CMOS設計制造,因此單片機和A/D轉換器可以在工藝上同時實現。
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單片機的地址空間分配
模數轉換器可以按結構分成逐次逼近型、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]。
最終單片機嵌入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位的線性度。
單片機采用GSMC 0.18μm帶flash的工藝設計加工,整個芯片達到了預期目標。A/D修調前的INL曲線如圖6所示,可以看出電容失配造成的影響,尤其是高位電容失配的影響很大。經過一階修調算法進行的修調結果如圖7所示,雖然修調匹配了電容誤差,但是在2048處形成了較明顯的拐點,證明一階修調雖然能夠把INL曲線修至1LSB以內,但仍有明顯的積分非線性誤差存在。經過二階修調算法進行的修調結果如圖8所示,經過二階修調,通過修調電容的整體彌補,使得INL曲線接近理想狀態[8]。

圖6 未經修調的INL曲線

圖7 采用一階修調算法得到的INL修調曲線
逐次逼近型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