ADI(Analog Devices Inc)公司是美國著名的半導體生產廠商,其生產的模擬器件、AD"C800系列(51內核)單片機和ADSP系列處理器在國內已有廣泛應用。近來,ADI公司采用新型的ARM7TDMI內核設計了全新的ADμC702x系列MicroConverter,其運算速度可達45MIPS,12位A/D轉換速率高達1000 ksps,是MicroConverter系列中功能最強的成員。本文簡要介紹ADμC702x系列MicroConverter的特點及其軟、硬件的設計。 1 ADpC702x系列的特點及硬件設計 ADμC702x系列MicroConverter采用ARM7TDMI體系結構,支持16/32位精簡指令集(RISC),具有最多16通道、高達1000 ksps采樣速率的12位A/D。ADμC702x系列整合了片內參考電平與溫度傳感器,支持JTAG方式調試與下載,外接32 kHz晶振,通過鎖相環可工作在45MHz下。該系列產品集成有62 KB的Flash與8 KB的SRAM,片上外設資源包含有UAR了、SPI,雙I2C串行接口、4個定時器、看門狗、電源監測模塊、3相16位PWM輸出和可編程邏輯陣列(PLA)等。ADμC702x系列采用3V供電,在1 MHz系統時鐘下耗電為3 mA,45 MHz時鐘頻率下耗電為50 mA。圖1為以ADμC7026為例的系統功能框圖。下面簡要介紹AD#C702x系列的硬件特點與相關設計。 1.1ADuC702x系列A/D轉換器的配置與應用 ADμC702x系列MicroConverter包含有快速多通12位A/D轉換器,可工作在2.7"3.6V電電壓下;在系統時鐘為45 MHz時,可提供1000 ksps的采樣率。A/D模塊還具有多路選擇開關、差動采樣保持和片上A/D轉換參考電平(2.5 V)。 ADμC702x系列的A/D轉換器可配置為差分、偽差分和單端模式。在偽差分與單端模式下,A/D轉換的輸入范圍是0 V"VREF(參考電平)。在差分模式下,輸入信號的共模電平為VCM,輸入信號范圍必須在0 V—AVDD(模擬電源電子)之間,輸入信號的差模幅值最大可達2VREF,如圖2所示。當A/D工作在差分方式時,每兩路A/D轉換引腳作為一路A/D轉換通道,所以在該方式下可用的A/D通道較少;但差分方式對每一路模擬信號都能提供很好的共模抑制,并且擁有更寬的輸入范圍。采用單端與偽差分方式時,每個A/D引腳可作為獨立通道工作,所以會擁有更多的A/D通道與更高的分辨率(為差分方式下2倍)。在設計時,可根據信號的特點選擇A/D轉換方式。 1.2 ADμC702x系列存儲系統的特點與設計 ADμC702x系列MicroConverter具有64 KB的片上Flash。其中頂端的2 KB存儲區包含有永久的固件,主要用于工廠校準、上電時內部引導和串口程序加載等,對用戶是不可見的。其余62 KB可用于用戶程序的寫入。Flash組織方式為32K%26;#215;16位。當執行ARM(32位)指令集時,單周期不能完成取指,而且從Hash中讀取數據需要插入更多的額外時鐘周期,所以對于關鍵的代碼段或中斷服務程序可以映射到SRAM中進行。ADμC702x系列的SRAM組織方式為2K%26;#215;32位,訪問速度為2 ns,可全速執行ARM代碼。 在系統復位后,內核首先執行2KB的內部設置程序,然后默認從Flash中取指。可通過REMAP寄存器(ADμC702x系列的寄存器除標準的37個ARM7TDMI寄存器外都為存儲器映射寄存器一一MMR)映射為從SRAM中取指,也可從SRAM取指方式通過REMAP寄存器返回為Flash取指方式。 ADμC702x系列中只有多引腳封裝的ADμC7026與ADμC7027支持外部存儲器擴展,其外部存儲器總線可工作在8位或16位帶寬模式下,分為4個存儲區,通過MS[3:O]進行選擇。典型外部總線設置如圖3所示。 1.3 ADμC702x系列的PLA介紹 ADμC702x系列整合了可編程邏輯陣列(PLA),包含有2個相互獨立但內部連接的PLA模塊。每個模塊包含8個PLA單元,共含有16個PLA單元。每個PLA單元包含1個雙輸入的查表結構,可用于產生基于輸入的任伺邏輯輸出函數并包含有1個觸發器。PLA單元的結構如圖4所示。 ADμC702x系列共有30個可用于PLA的GPIO口,其中有16個輸入口,14個輸出口。可通過配置GPxCON寄存器使它們成為PLA的外部引腳。通過配置相關寄存器可使PLA成為中斷源,啟動A/D轉換或在輸出引腳得到所需信號等。在AD公司的開發工具中還含有專門的設計軟件用來設計PLA寄存器配置。 1.4 ADμC702x電源與其他硬件相關設計 由于ADμC702x系列內部整合有模擬與數字兩部分電路。為了防止數字部分對模擬部分的干擾,保證A/D精度,在電源部分設計時要特別注意兩部分電源的隔離。可采用雙電源供電或單電源供電磁珠隔離方式。典型電路分別如圖5、6所示。 ADμC702x系列其他片上外設資源,如LIART、SPI、PWM、watchdog等,在嵌入式系統中已有廣泛應用,在ADμC702x系列使用中并無明顯差異,在此不再贅述。 2 ADμC702x系列的軟件設計 ADμC702x系列MicroConverter采用了ARM7TDMI內核,支持ARM(32位)與Thumb(16位)指令集,包含長乘法指令,有5種中斷模式(未定義指令、軟件中斷、IRQ中斷、FIQ中斷和存儲器訪問終止),24個中斷源(包括看門狗中斷、定時器中斷、SPI中斷、PLA中斷、A/D中斷、外部中斷等)。其中5種中斷模式是ARM7TDMI內核共有的。24個中斷源是根據ADμC702x系列特性可配置的,可分別配置為IRQ中斷或FIQ快速中斷模式。配置為FIQ模式時,將會有更快的響應時間。對應不同的工作模式,ADμC702x系列遵循ARM7TDMI內核規范,使用不同模式下的寄存器。有關ARM7TDMI內核特性可參考ARM體系結構相關資料。 2.1 適用于ADμC702x系列的編譯器 ADμC702x系列為ARM7TDMI內核,所以原則上可以編譯為ARM7TDMI指令集的編譯器都可以選擇。ARM7TDMI為RISC指令核,適用于使用C語言開發。現在常用的ARM編譯環境有ARM Developer Suite(ADS)、RealView Developer Suite、IAR Embedded Work bench、KEILToolKit、GCC等。其中ADS與RealView是ARM公司開發的編譯環境,RealView為ADS的換代產品。這兩種編譯器都具有很高編譯效率與代碼密度。IAR是一家瑞典嵌入式系統開發工具和服務的供應商,其不同MCU的編譯器(如MSP430)在國內也有廣泛應用。KEIL的C5l編譯器對805l核C語言具有很好的編譯效果,是國內使用最廣的C5l編譯器,其ARM編譯器是該公司的新產品。而GCC是GNU組織設計的開源編譯器,針對不同MCU有不同的開發工具集,并且可以免費使用,但它的編譯效率不高且缺少可視化開發環境。 2.2 基于KEIL的ADμC702x系列程序設計簡介 由于ADS在國內使用較早,現已有很多參考書籍。現簡要介紹ADμC702x開發套件中KEIL編譯器的開發流程。KEII.ARM集成開發環境為μVision3,具有友好的交互界面,編譯、連接可在集成環境中一次完成,并可進行軟件仿真或通過開發套件中的UuNKJTAG調試器進行下載、調試。在KEIL環境下,還可以配置編譯器為ADS、REALVIEW、GCC或KEIL公司的ARMC編譯器,所以KEIL環境極大地提高了開發的靈活性。以下簡述在KEIL環境下,基于GCC與KEIL編譯器的程序開發(GCC ARM編譯器可從KEIL官方網站免費下載)。 在使用KEIL環境開發程序時,用戶需要提供匯編語言起始代碼startup.s、用戶程序和連接器配置文件。其中startup.s程序主要用于安裝中斷入口程序、初始化不同模式下堆棧指針和當前MCU的初始化工作(包含PLL配置等),在初始化完成后,staltup.s還負責引導程序至C語言入口main()處。若使用GCC與KEIL編譯器,一些常用MCU(包括ADμC702x系列)的startup.s代碼已由KEIL提供,用戶可根據需要進行少量修改。采用KEIL自帶的編譯器可在圖形化界面下完成大部分連接器的配置工作,無需編寫專門的文件。若使用GCC編譯器還需提供連接配置文件。針對常用的MCU,KEIL也提供了基本的連接代碼,可從相關目錄中拷貝,根據需要修改配置。連接文件主要用于各代碼和數據在存儲器中的定位與變量的初始化。 用戶程序可采用C語言編寫。針對ARM7TDMI內核的特點,KEIL公司的ARMC編譯器CA與GCCARM編譯器arm-uclibc-gcc都對ANSI C進行了擴展,增加了關鍵字(如CA的中斷服務關鍵字_irq、絕對存儲地址關鍵字_at、GCC的_attribute_關鍵字等),以方便用戶使用C語言對嵌入式系統編程。在程序設計時,擴展關鍵字可通過KEIL與GCC的用戶手冊進行查找,也可參考KEIL官方網站上的例程。 2.3 ADμC702x系列程序的下載與調試 ADμC702x系列上的JTAG接口可通過開發工具中的ULINK連接至PC的USB口,在KEIL環境下進行非侵入式(non intrusive)的調試和對Flash進行編程。與其他MicroConveiter系列芯片相同,ADμC702x系列也可通過串口進行程序的寫入與升級,即SERIAL DOWN-LOADER方式。該方式提供了廉價的系統升級方案,通過在系統復位或上電時,把P0.O口置低,使系統進入SE-RIAL DOWNLOADER模式,通過UART口下載程序至片上F1atsh。 |