MSC1210在高精度智能傳感器應用中的調試方法
前言
MSC1210 是一款內置 8051內核及其他高性能外圍設備的24位Delta-sigma 模數轉換器,可為高精度數據采集系統提供片上解決方案。
因此,MSC1210成為高精度"智能傳感器"優選方案。對低于100nV的高精度工業智能傳感器輸出信號,其關鍵是在不犧牲模擬性能的條件下進行有效編碼調試,故本文主要針對智能傳感器開發進行探討,并介紹包括集成開發環境(IDE)仿真器以及將仿真器與在系統調試器(ISDs)進行比較的調試方法。
智能傳感器
過程控制儀表通過高精度模擬傳感信號來監控控制設備,該傳感信號被轉換為 4~20mA 的標準模擬信號來進行傳輸(它是長期以來工業過程控制中普遍使用的一種傳輸方式)。隨著現代科技的發展,計算機如今已成為用來監測、控制儀表系統,來自中心點的傳感器線束及其群集間的監控設備。這類傳感器中集成了高精度的模數轉換器及高性能的處理器而成為智能傳感器。智能傳感器用更準確、可靠的數字網絡以及更簡單的內部連接替代了 4~20mA 的傳輸線,同時,它集成了分布式控制功能,提高了整體性能并降低成本。
用于智能傳感器的 MSC1210
MSC1210包含了智能傳感器所需的多種功能,如:
l 高精度模數轉換:高于22位的有效精度;
l 嵌入式傳感信號調整電路:輸入緩存器、可編程增益放大、偏置數模轉換器、增益與偏置校正功能;
l 低功耗降低了對供電網絡的要求:小于4mW;
l 增強型的處理器內核:每條指令4個機器周期的8051核;
l 嵌入式存儲器:程序 (32KB),數據 (1.2KB)
l 高性能通信口:SPI口、FIFO,2個UART口;
l 可靠的工業標準電路:低電壓檢測、開路檢測、看門狗時鐘電路、寬的工作條件(電源:2.7~5.25V,工作溫度:-40~+85°C)
智能傳感器編程系統
由于智能傳感器是集傳感器復雜信號轉換、過程控制以及網絡于一體的系統,其代碼開發必須解決以下問題:
l 開發系統對模擬信號精度的影響;
l 硬件的物理尺寸;
l 開發主機到目標系統的通信媒體;
l 實時控制與網絡時序;
l 開發系統電源。
微系統控制器 (MSC) 提供了多種開發環境以滿足不同的開發需求。適用于MSC器件的開發系統。該開發環境可用于仿真系統和在系統調試。在系統調試器 (ISD) 又可分為基于軟件和基于硬件的調試。在這些方案中,Keil與Raisonance仿真器、MSCMon終端監視器以及Keil ISD51 IDE監視器均適用于智能傳感器程序開發。
用來初始化智能傳感器的模擬器集成開發環境
集成開發環境 (IDE) 是一套用戶化的圖形接口開發工具,該工具集成在同一環境中,可縮短程序開發周期并減少程序錯誤,從而還可提高軟件質量。IDE在該環境中提供諸如編輯、匯編、編譯、鏈接、項目管理、修訂控制以及器件仿真等工具。一般情況下,IDE仿真器在 Microsoft? Windows? 仿真8051器件,在UNIX平臺下的仿真器的使用并不普遍。
仿真器可使用戶無需實際硬件便可仿真程序的運行過程。用戶可驗證算法和時序,仿真外設、中斷及輸入輸出口。這一點尤為重要,因為這可使用戶在沒有完成硬件的情況下進行程序開發和系統性能的評估。圖4為用于 MSC 設備的 IDE 仿真器的結構框圖。用戶可以進行反匯編、斷點設置、存儲器監測/修改、程序運行跟蹤以及外設監控等操作。仿真器也支持程序檢測工具,該工具可"標識"已執行過的程序。仿真器還提供性能分析工具,可記錄執行時間,以便用戶分析程序的性能。而仿真器最常用的是單步執行功能,它可單部"進入"或"越過"目標函數。仿真器中的機器周期計數非常準確,因此可輕松評估無效的執行時間。
普通 PC Windows IDE 仿真器包括Keil調試器以及Raisonance調試器。Keil IDE 用戶手冊可以作為仿真器具體操作的參考。Raisonance IDE 調試特方法似于與 Keil IDE 。請參考本文結束部分的"相關網站"。
使用IDE仿真器對智能傳感器進行程序開發的優點
l 由于無須任何硬件參與開發,仿真是一種低成本的程序開發方法;
l 程序開發可以在系統硬件完成之前開始;
l IDE仿真器最適合智能傳感器的初部程序開發。
使用IDE仿真器對智能傳感器進行程序開發的缺點
l 無法仿真精確的模擬信號;
l 難以仿真過程控制中的網絡時序及實時轉換;
l 當軟件開發進入必須有最終硬件參與共同完成的階段時,就需要在目標系統或 ISD(指令式系統設計)中完成。
對于智能傳感器開發來說,特設調試區是不夠的
與PC仿真不同的是,ISD在實際系統中執行并調試軟件。特設調試是最簡單的方法,只需在需要的地方插入調試代碼。例如,可簡單添加一個打印語句并查看其結果。這種方式僅適用于簡單的程序調試,當軟件長度增加時,出現的若干個打印語句就會變得難以控制了。
智能傳感器的在系統調試
ISD 開發環境在智能傳感器中內置調試支持。開發程序會處理來自傳感器的實際系統輸入并提供瞬時系統響應,而不是系統仿真。因此,可解決系統級問題,如:傳感器精度、控制系統穩定性以及傳感器網絡吞吐量等。如圖3所示,ISD 分為兩類:軟件方式和硬件 方式。軟件方式ISD 又分為基于終端的ISD與基于 IDE 的ISD兩類。終端調試包括一通用監控器及片上調試器。IDE調試包括源監控器與閃存 ISD。基于硬件的ISD又分為在電路仿真器 (ICE) 與內建調試器模塊 (BDM)。
由于智能傳感器是緊湊型系統,它們大多不能容忍占用額外電路板空間的、增加功耗及系統成本的外部存儲器。因此,MSC1210必須提供ISD 所需的所有資源。包括ISD代碼空間、CPU 的時序處理的ISD路徑以及ISD口。
需要外部存儲器的軟件方式ISD,如通用 MON51、Keil MON51 及 Raisonance MON51,這些工具都不是智能傳感器開發的最佳選擇。而需要額外 ICE 連接總線的硬件 ISD 也是如此,該硬件 ISD 會消耗更大 ICE 總線功率,產生更多系統噪聲。在系統調試盡量不要采用 ICE,需要外部存儲器的ICE及 ISD 只能用于半成品開發。
軟件ISD調試方式是智能傳感器開發的理想選擇
對于智能傳感器等遠程目標系統的監控器是嵌入在存儲器中的 ISD 軟件監控器。ISD監控程序用于用戶程序與調試端程序之間的程序銜接。監控器將程序從編程端(例如采用片上通用異步收發器的個人電腦端程序)下載到目標系統存儲器,然后進行功能調試,諸如存儲器或特殊功能寄存器的讀取和修改、中央處理器的狀態請求、用戶程序轉移、單步或斷點操作等。
傳感器網絡作為調試端口
緊湊型遠程智能傳感器在連接端口到終端時,可能會產生問題。一個可行的方法是通過傳感器網絡將傳感器與終端連接起來,完成命令、響應及用戶程序的下載等。然而,由于傳感器網絡標準種類繁多,用戶需要專門設計一個帶有傳感器網絡處理的ISD監控程序。
通過傳感網絡或調試端口下載用戶程序
包括MSC1210在內的可編程微控制器一般都帶有內置的串/并行閃存編程操作功能。用戶只需將 MSC1210 設定為閃存編程模式,便可通過UART0 把用戶程序下載到遠程傳感器中。若沒有調試端口,或系統需要盡可能減少網絡連接傳感器的數量時,用戶程序可通過一般傳感網絡直接下載。MSC1210的可編程閃存具有自動更新的能力。換句話說,在運行嵌入式ISD監控程序Load User Code 時, MSC1210內置于閃存中的監控程序會將用戶碼下載并保存到同一閃存中。
MSC1210 IAP 閃存
在下載用戶程序時,嵌入式閃存因忙于執行寫、刪除操作。這時,CPU不可對閃存操作,故MSC1210帶有一個可提供閃存擦寫程序的2KB嵌入式自啟動ROM。該ROM程序可用于嵌入式閃存的內部在應用編程 (IAP)。MSC1210 用戶應用程序,如ISD的監控程序,可以使 ROM 程序對閃存進行編程操作。
ISD 監控器 - 嵌入式 MSCMon
ISD監控器可通過通用的監控程序進行修改,該程序在因特網上隨處可見,并且大部分已通過測試適合MSC1210,如:Steve Kemplin 編寫的 MonPlus、Paul Stoffregen 編寫的 PaulMon 以及 Ultramon(編者不明)。
MSCMon - 片上 MSC 監控程序
除了快閃的內部在應用程序外,嵌入式 ROM 還帶有用于監控程序及其應用的其他支持程序。利用 autobaud、put_string或cmd_parser等系統引導調試子例程,用戶可獲得最低開銷的調試設置 - MSCon。
嵌入式 MSC 調試子例程不僅支持基本調試命令,如:S-單步、B-中斷 以及Q-繼續,同時支持包括CP-程序頁刪除、CW-程序寫、XP-X頁數據刪除 以及 L-裝載等的閃存命令。使用MSCMon 可大幅度節約調試空間,最低配置的 MSCon 僅需29字節的快閃程序空間。此外,由于用戶程序儲存在閃存中,下載程序可作為最終應用。完整的命令列表如圖6所示。值得一提的是,MSC 監控程序保存在閃存中,通過Load User Code命令下載用戶程序。由于 MSC 監控程序的存儲要求很低,用戶程序可以連接在 MSCMon上。
MSCon 需要 PC 調試終端,如Hyper-term、Tera-term、Procomm 或 Telix。在沒有調試端口或調試終端的情況下,就需要有用戶傳感器網絡程序。
匯編與源程序調試
采用 RS-232 端口的典型調試終端程序時,沒有源程序或監控操作的信息。源程序調試,如單步執行需要機器代碼與源代碼之間的關聯表,因此只支持匯編級調試。而 PC IDE 程序與監控程序通過特殊的握手信號,獲得一般監控程序和MSCMon所沒有的外部源碼信息。將這些高性能源級接口與調試命令連接,使用戶操作變得簡單易行。
Keil ISD51 監控程序是閃存中的內嵌程序,與 IDE通信實現源級調試。IDE的圖象用戶接口可大大提高調試效率。用戶可隨時對CPU 寄存器及其中的任何存儲器內容進行監控。由于它是源級監視程序,其調試質量要遠遠優于匯編級監視程序。而ISD51的小容量要求使得監控程序與用戶碼在目標系統中的編譯和下載同時完成。MSC1210帶有一內建硬件斷點,用于檢測硬件中的斷點地址。ISD51 充分利用硬件斷點功能,執行性能比通過軟件實現提高了100倍。
盡管 Keil ISD51 是極具吸引力的工具,但仍需要 RS232 調試端口。另外指令式系統設計的監控程序與用戶傳感器網絡之間的通信設置部分需要單獨開發。
總結
由于ISD監控程序內置在智能傳感器中,最終的智能傳感器不會由于程序開發裝置而降低了模擬性能。MSCMon 與 Keil ISD51 監控器只需較小的代碼空間。針對某些對代碼空間較敏感的應用領域,在產品設計階段可考慮采用帶有較大存儲器的MSC1210系列版本,到實際生產中再降低內存。指令式系統設計監控器在調試階段無須附加硬件,這樣可有效降低開發成本。
文章版權歸西部工控xbgk所有,未經許可不得轉載。