1 dsPIC的產生 目前,在自動檢測、控制等領域正掀起應用DSP的熱潮。DSP(Digital Signal Processor)即數字信號處理器,是在數字信號處理的各種理論和算法的基礎上發展起來的,用于完成各種實時數字信息的處理。20世紀80年代初,隨著微電子技術的展,DSP就應運而生了。DSP器件的出現,使得各種數字信號處理的算法得到了實現。DSP器件不但使數字信號處理得到了實際應用,而且還拓寬到了系統控制領域,從而誕生了一大批新型的電子產品。DSP技術的迅速普及,也為今天的信息高速公路建設奠定了基礎。 DSP器件的數字信號處理大致有如下特點:①可程控,可以只設計一個硬件配置,然后設計各種軟件來執行多樣的信號處理任務;②穩定性好,沒有時漂、溫漂;③可重復性好,無論多少臺計算機去計算同一序列的和,都會提供一模一樣的結果;④易于實現自適應算法;⑤基于大規模的集成電路。 這樣就不難看出,單片機和DSP各有特點。前者控制功能強,后者數字信號處理能力強,因而,將高性能16位單片機加上DSP功能,就產生了 dsPIC芯片。DsPIC是一種將單片機的特征同數字信號處理器(DSP)的能力結構在一起的器件。它在異步事件處理能力、精密仿真、常見的開發環境以及外圍部件等方面都表現出DSP強大的性能。 為了縮小單片機同DSP之間的性能差異,使客戶能方便地將單片機的功能轉移到DSP上,Microchip公司推出了dsPIC。目前推出的產品主要有dsPIC30FXXX系列。考慮到DSP和單片的內部區別,dsPIC器件將高性能16位單片機的控制特點和DSP高速運算的優點相結合,為嵌入式系統設計提供了適合的,單芯片、單指令流的解決方案。它消除了目前類似設計中所需求的額外組成部分,從而減小了印制板空間,也降低了系統成本 dsPIC30FXXX高性能單片要同系列可以應用于非常廣闊的范圍,包括馬達控制、因特網接入器件、汽車產品、功能電路、數字應答機、低速軟件調制解調器、線卡、POS終端、自動售貨機、生物測定安全裝置、不間斷電源、電源管理和自然語音輸入/輸出等等。 由于dsPIC兼容了單片機和DSP芯片這兩類產品的優點,因此它具有下列特點: *豐富的外圍部件; *完整的DSP引擎; *改進的中斷能力; *Flash存儲器,靈活的重編程能力; *強大的開發環境; *引腳數少; *使用優化的高級語言; *方便PIC系列單片機用戶移植現有的代碼; *熟悉的類似單片機的用戶開發平臺。 此外,dsPIC還可以支持4M×24位的可尋址Flash程序存儲體,以及32K×16位的數據存儲空間。相對于其它許多單片機的5V供電及DSP的3.3V供電,dsPIC的供電電壓是2.5~5.5V。 圖1 dsPIC芯片內部結構圖 2 dsPIC30F與PIC16F87X的比較 dsPIC30F芯片采用16位(數據)改進型——非流水線的哈佛RISC結構,芯片具體結構如圖1所示。程序計數器(PC)為24位寬,可以尋址4M×24位的程序存儲器空間。而PIC16F87X系列單片機采用的是8位流水線哈佛結構,有一個13位寬的程序計數器PC,最大只可尋址8K的程序存儲器空間。 DsPIC30F有16個16位的工作寄存器(W0~W15)。每個工作寄存器都可以作為數據、尋址或移位寄存器來操作。其中,第16個工作寄存器(即W15)作為中斷和程序調用的堆棧指針。PIC16F87X系列同其它種類的PIC機一樣,只含有一個用于ALU的8位W工作寄存器,相當于一般單片機的A累加器,是不可尋址的。 dsPIC30F指令字是24位的,其指令系統有很大的增強,最大特點就是包含了對DSP的支持。因為這種DSP引擎具有1個高速的16位與 16位相乘的乘法器、1個40位的ALU、2個40位的飽和累加器(saturating accumulator)以及1個40位的雙向移位器,因而能夠明顯提高芯片算法能力和周期。由此,這種芯片的指令系統就分成兩大類——單片機類和DSP 類。這種指令系統基于高效的C編譯器,支持固有尋址(無操作數)、相對尋址、立刻尋址、存儲器尋址、寄存器直接尋址、間接尋址和移動尋址7種方式。每條指令都同預先定義的尋址方式有關,而這些預定義的尋址方式是由特定功能需求決定的,且每條指令都支持這7種尋址方式。對于大多數指令,dsPIC30F芯片在每個指令周期能夠執行數據(或程序數據)存儲器讀操作、工作寄存器(數據)讀操作、數據存儲器寫操作以及程序(指令)存儲器讀操作。因此,它可以支持3 操作數的指令,比如,在一個周期內可以完成A+B=C的操作。而PIC16F87X系列單片機每條指令長14位(其它系列指令字長也12位或16位的),整個指令系統共分成三類——字節操作類、位操作類以及立刻數操作和控制操作類,支持立即數尋址、寄存器間接尋址、直接尋址和位尋址四種尋址方式,但由于這樣尋址種類的劃分依據是操作數的來源,因此并非每條指令都可以支持這四種尋址方式,例如,位操作類的指令就只能采用位尋址方式。對PIC16F87X系列單片機,其指令的操作個數最多只能是兩個,另外,再加上這種系列單片機不提供對DSP的支持,那么在數字信號處理速度方面,同dsPIC30F相比顯然要慢很多。 dsPIC30F芯片的數據空間被一分為二,分別以X和Y數據存儲器進行引用,可以作為32K字(word)或64KB(byte)進行尋址。每個存儲器塊都有自己獨立的地址產生單元(AGU)。單片機類的指令僅單獨通過X存儲器的AGU單元進行操作,把整個存儲器作為一個線性的數據空間進行尋址。而DSP類指令的乘法累加器(MAC)是通過X和Y的AGU共同操作的,這樣就將數據地址空間分成相對獨立的兩部分。不過,這樣的X和Y的數據空間邊界是任意的,且是由芯片自身特性決定的。數據空間存儲器高位的32KB,通過定義8位程序空間可見頁面寄存器PSVPAG(Program Space Visibility Page),任意的16位程序字邊界中隨意地被映射到的程序空間低位(用戶空間),這樣就使得任何指令能夠像訪問數據空間一樣訪問程序空間。不過,采用這種方式訪問的執行時間比一般的訪問方式要多一個周期。而且,只有每條指令字的低16位才可以使用這種方法訪問。PIC16F87X系列單片機的數據存儲器分成多個存儲區。每個存儲區由通用寄存器和專用寄存器兩部分組成。存儲區之間的選擇是通過定義狀態寄存器STATUS的RP0和RP1位進行的,每個存儲體最多只能達到128字節。 dsPIC芯片不支持多級指令流水線,而采用單級指令預取機制,就是在可利用的最大執行時間前的一個周期訪問指令。因此,dsPIC芯片大多數指令是單周期的。此外,dsPIC30F芯片還有一個特征,就是含有由61個區分優先級的向量組成的矢量異常處理結構,這些異常情況包括復位(RESET)、6個捕捉以及54個中斷。 結語 dsPIC器件的開發有助于緩解16位單片機和低端數字信號處理器(DSP之間的性能差,是傳統16位單片機應用的理想解決方案。與此同時,隨著控制技術日趨復雜化,越來越多的工業系統要使用DSP精確控制實時響應,以及現有產品要求增加更多功能,以增強I/O易用性和安全接入,dsPIC必將在高性能數字信號控制器市場占據重要一席之地。同時,隨著多種dsPIC產品系列的不斷迅速開發,以及愈加完善的開發工具、應用系統庫、現場應用工程技術和綜合技術等的產品,dsPIC一定會得到廣大用戶的青睞。 參考文獻 1. Microchip Technology Inc dsPIC30F Programmer'sReference Manual 2. Microchip Technology Inc dsPIC30F Data Sheet--High-Performance Digital Signal Controllers 3. Microchip TechnologyInc.劉和平 PIC1 6F87X數據手冊-28/40腳8位Flash單片機 2001 作 者:福州大學 陳翔宇 江和 來 源:單片機與嵌入式系統應用2003(7) |