《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 成功的嵌入式設計需要指令集之外的諸多因素
成功的嵌入式設計需要指令集之外的諸多因素
摘要: 當談到32 位微控制器時,基于ARM 的產品已經占據重要地位。那么,這會是故事的全部嗎?不見得,行業內最重要的公司之一,Microchip Technology,正全力推動其基于MIPS 架構的芯片。他們最新推出的產品在提醒我們,成功的嵌入式設計需要指令集之外的諸多因素。
Abstract:
Key words :

 當談到32 位微控制器時,基于ARM 的產品已經占據重要地位。那么,這會是故事的全部嗎?不見得,行業內最重要的公司之一,Microchip Technology,正全力推動其基于MIPS 架構的芯片。他們最新推出的產品在提醒我們,成功的嵌入式設計需要指令集之外的諸多因素。

在計算機歷史上,從實驗室走出過多少種不同的指令集架構?可能曾經有數百種架構取得過一些商業上的成功; 如果算上諸多博士論文中出現過的,數目可能會多達幾千種。拿流行時尚做比喻,計算機體系結構發展就好似女生裙擺的高度一般,經常來回變化。

曾經有一段時間它非常要緊—— 比如在匯編語言編程的時期。至于兼容性,至少在表面上它依舊是件重要的事情,特別是在電腦或視頻游戲方面(例如,有一些需要執行以前的二進制文件)。但實際上,嚴格的目標代碼兼容性對多數嵌入式設計來說已經不再是一個大問題。更多的問題是關于工具鏈的兼容性和代碼模塊的可用性,指令集本身已經不是問題之一。

隨著芯片不斷地集成系統功能,設計人員需要的是一個擁有全部所需存儲器、外設和膠合邏輯的芯片。并且這個芯片必須省電、有良好的工具和支持,以及合適的價格。

這并不是說在特定的應用當中,體系結構并沒有優劣之分。事實上,這個問題很有趣,看看那些當初為“計算機”設計的架構—— 如 ARM 和MIPS,不斷下沉,以更好地適應嵌入式“控制器”應用的需求。這些“計算機”架構最后都終于認識到要在嵌入式應用里面解決諸如代碼密度、低功耗、快速并確定的中斷響應等問題。

認識 PIC32

在 MCU 領域的競爭里,無疑MIPS 是在追趕ARM。但是,擁有像Microchip 這樣的重量級選手支持,差距正在縮小。看看新的PIC32 5XX/6XX/7xx 系列產品,高度集成了以太網、USB 和CAN 應用。

我在以前的文章中(“MIPS for the Masses”,Circuit cellar 216 期,2008)介紹過PIC32的內核。擁有5 級流水線,性能相對較高(比如與ARM Cortex - M3 相比)。不過,這只是處理器內核級別的性能差異。比如Microchip PIC32 的性能為1.5 DMIPS / MHz,而Cortex - M3是1.25 DMIPS / MHz 的。在實際中,32 位微控制器的flash 存儲器訪問時間是性能瓶頸。如以80MHz 運行的PIC32 可能需要2 個等待周期。通常采用寬總線(128 位)、高速緩存和預取等技術來減輕flash 訪問的瓶頸問題。

或者,可以使用片內的RAM來達到0 等待周期。’5xx 系列包含64KB 的RAM,’6xx’和7xx 系列中的部分型號有多達128KB 的RAM。不過要記住,代碼和數據訪問之間的爭搶可能導致一些延遲。此外,256KB 或512KB 的flash 空間足夠用來放置你的代碼(加上額外12 KB 的啟動代碼空間)。

外設方面,這些新產品提供了完整的I/O(見圖1)。 ‘5xx/6xx/7xx 編號代表了大的接口功能:USB、CAN 和以太網。‘5xx 系列包含一個USB 2.0 和一個CAN(2.0b)模塊;‘6xx系列包含USB 模塊與一個10/100 以太網MAC。而‘7xx 系列集成了所有這些,包含USB、以太網和兩個CAN 模塊。

普通 I/O 方面,這些產品遵循了不同應用需求的趨勢。我們看到5 個16 位計數器/定時器,其中任何兩對可以組合成為32 位單元。由于封裝尺寸(有64 腳和100 腳可選)和引腳復用的限制,你能得到最多六個UART、四個SPI 以及五個I2C 接口。在模擬方面,有一個16通道多路復用器連接一個10 位1 MSPS 的ADC 和兩個模擬比較器。除了這些MCU 能力,另外還有8/16 位數據總線和16 位地址總線擴展功能,外加兩個片選。所有的數據流可以通過8個通用DMA通道控制,輔以4個專用DMA通道(''5XX 和''6XX 系列)或8個專用DMA通道(''7XX 系列)。

源自上世紀80 年代的MIPS 是RISC 方面“精簡”特性的杰出代表。當響應中斷時,它們可以要對PC 和狀態寄存器壓棧,不然的話就轉由軟件去處理。對這種極端簡約存在一些爭議,可能少了一些有用的東西。考慮到這一點,PIC32 系列包括一個全功能優先級/向量可編程的中斷控制器;以及一組替代寄存器組用于快速中斷響應和上下文切換。

另外,不要忽視那些可能導致嚴重預算問題的膠合邏輯,如看門狗定時器、低電壓檢測、電壓整流器、主時鐘/外設時鐘/實時時鐘等。這些功能的集成,使PIC32 系列成為真正適用于“控制”應用的芯片,有別于“計算機”芯片。

入門

跟以前一樣,Microchip 的芯片評估很容易,而且便宜。PIC32 以太網入門套件(見照片1)定價$72,提供一切你需要的部件。雖然名字為“以太網”入門套件,該套件配備了高端的''795 型號MCU,同時支持USB 功能。

該套件還包括配有一個“輕量級”GCC 編譯器的Microchip MPLAB IDE。文檔中關于“輕量級”編譯器的說明有點矛盾。“輕量級”版本編譯器暗示不支持先進的代碼優化,但是我拿到的版本顯然不是這樣,在下一節你將看到這一點。或許實際上該工具包是所謂的“評估”版本,支持所有功能,但只有60 天有效期。

PIC32 采用的架構來源于“計算”,因此它非常適合管理面向PC 的以太網和USB 接口。讓我們看一些演示程序,你就會明白我的意思。

多年來Microchip 一直在為其小型的PIC 芯片提供部分網絡軟件棧,PIC32 做得更多,它提供了全功能、免費的BSD TCP/IP 網絡堆棧。包含所有的網絡服務、套接字等,以及這些常用的協議:DHCP、UDP、ICMP、ARR 等。''795 型芯片中有512KB 的片上flash,有充足的空間存儲一些漂亮的演示程序,讓我們瀏覽一下入門電路板(見照片2)。

USB 支持不錯,。OTG功能允許一個設備在USB 主、從設備之間動態切換。一個典型的應用案例是打印機,當連接到PC 時它是一個從設備,而當連接到相機時它成為主設備。現在所有的USB 芯片似乎都有OTG 了,不過我自己從沒有遇到過需要以這種方式切換的情況。

不管 OTG 是否真正有用,它使得PIC32 能在更多的傳統領域中得到應用,無論是作為主設備或從設備。USB“嵌入式主設備”在使用中有一些限制,不像“標準主設備”如電腦,舉例來說PIC32 不提供VBUS 電源(100-500 mA),但是你可以在個人電腦的USB接口上找到這種電源——當然這完全可以理解。另外,速度限制也需要注意,,作為從設備時能夠“全速”(12 Mbps),而作為主設備時只能提供“低速”(1.5 Mbps)。

這個套件包含了一些實用的演示。其中一個演示讓該板子成為一個標準人機接口設備(HID)——比如鼠標。因為HID 驅動已經是標準,你可以把它直接插入PC 使用。另外,你可以把這個套件配置成USB 主設備,從而利用PIC32 不斷完善的FAT 文件管理軟件庫,有一些演示展示了如何訪問廣泛使用的USB 存儲器(見照片3)。

不過需要指出的是這個套件中沒有包含CAN 演示。因為我不懂也沒有實驗條件進行有意義的CAN 測試,如果你需要該功能,你需要自己來評估和結論。

優化的迷宮

結構體系進化的重要標志之一,曾經是編譯器的優化。您可能還記得有些人把“RISC”縮寫調侃為“Relegate the Impossible Stuff to the Compiler”,即“把不可能完成的任務丟給編譯器”。然而,在調試時,一個太過自我聰明的編譯器其問題也是顯而易見的。比如PIC32 的“C”編譯手冊有提到說,當調試經過優化的代碼時“可能偶爾會碰到令人驚訝的結果。”

例如,有些變量和代碼會消失,如果編譯器認為你其實并不需要它們。舉例說你聲明了一個變量,然后給它賦值一個常數,接著在某個計算時調用了這個變量。不要為找不到那個變量和賦值語句而抓狂,編譯器只是比你更聰明一點,它在計算中直接調用了常數。

當你在一個條件分支指令處點擊了單步執行,然后看到光標移動到了下一條指令處,這是否意味該條件分支的條件未被滿足呢?未必,請注意這是MIPS 架構的一個特性,即分支指令的下一條指令總是會被執行,當編譯器找不到合適的指令時會填充一條NOP 指令。你必須再執行一次單步操作,才能確認分支條件是否被滿足(在這種情況下,你會看到光標跳到分支目標處)或不滿足(光標跳轉到下一條順序指令)。更先進的“代碼移動”優化能夠導致更多的優化干預。請記住,有時指令可以被挪動很遠的距離,甚至超出你認為應在的循環之外。

不過,調試優化過的代碼也是可能的,尤其是你喜歡頭腦風暴的話(例如,在分支指令后跟一個分支指令會發生什么?)。通常缺省的編譯器優化只生成簡單的代碼,會完整保留你的意圖即使可能它效率底下。當調試時在斷點觸發處,,你可以放心地修改某個變量的值,而不用擔心編譯器會搗什么鬼(比如雖然你從源代碼中看不到,但一些賦值語句已經被挪動并執行了)。

需要緊記的是,編譯器優化設置(見照片4)能夠產生很大影響。我試著跑過一個USB主機演示程序,采用了如表1 所示的不同編譯器設置,你可以看到,不同設置下(速度/大小取向、循環展開,采取MIPS-16 的16 位代碼優化選項)生成的代碼大小相差能夠高達2倍。


保持簡潔

PIC32 在精簡MIPS 架構使其服務于嵌入式應用方面做得很好。比如,全部的活動功耗只有1mA/MHz 水平,從它提供的性能來看這是非常難得的。它們的批量價格也比較合理,特別考慮到那些完整的外設和存儲器配備。

然而競爭也非常激烈,像Cortex - M3、瑞薩SH(現在叫RX)、愛特梅爾的AVR32 以及飛思卡爾的ColdFire 等。這些競爭對手在行業里已經有很長的時間,它們的產品也具有很廣的覆蓋面,在高端產品上能提供跟PIC32類似的集成度和性能,同時還有許多入門級的簡單產品。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲欧美卡通另类91av| 久久久久欧美| 久久精品国产欧美亚洲人人爽| 日韩午夜在线电影| 亚洲日本在线观看| 亚洲国产另类久久久精品极度| 好吊妞这里只有精品| 国产亚洲精品bt天堂精选| 国产精品国产a级| 国产精品v日韩精品| 欧美理论大片| 欧美精品v日韩精品v国产精品 | 狠狠狠色丁香婷婷综合激情| 国产日韩一区二区三区在线| 国产欧美日韩| 国产深夜精品福利| 国产日本欧美一区二区三区在线| 国产女主播一区二区| 国产日韩在线看| 国产亚洲成人一区| 精品91在线| 亚洲国产清纯| 日韩亚洲精品在线| 亚洲愉拍自拍另类高清精品| 国内久久精品| 国产精品日韩在线一区| 国产精品美女久久久久aⅴ国产馆| 久久久免费观看视频| 国产农村妇女精品| 国产精品一区免费在线观看| 国产精品日本一区二区| 国产美女一区| 欧美日韩综合久久| 国产精品欧美日韩久久| 国产精品红桃| 国产婷婷一区二区| 伊人影院久久| 亚洲精品欧洲精品| 亚洲一区在线免费观看| 欧美一区午夜精品| 亚洲日产国产精品| 亚洲天堂av电影| 欧美一级在线播放| 牛夜精品久久久久久久99黑人 | 伊人久久综合| 日韩一区二区久久| 欧美一区久久| 一区二区三区高清不卡| 欧美一站二站| 欧美激情黄色片| 国产精品亚洲激情 | 激情亚洲网站| 日韩视频欧美视频| 欧美一区二区大片| 亚洲六月丁香色婷婷综合久久| 亚洲欧美日韩成人高清在线一区| 久久嫩草精品久久久久| 欧美日韩性视频在线| 国产视频欧美| 亚洲精品一区二区在线观看| 午夜国产一区| 一区二区三区精品久久久| 欧美一级专区免费大片| 欧美成人中文字幕在线| 国产精品亚洲一区| 亚洲国产精品一区二区www在线| 制服诱惑一区二区| 亚洲青涩在线| 性色av一区二区三区在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产精品xxxav免费视频| 黄色小说综合网站| 亚洲午夜一区| 99热在这里有精品免费| 久久国产一区二区| 欧美性大战久久久久久久| 国内精品伊人久久久久av一坑| 一二三区精品| 亚洲国产精品99久久久久久久久| 亚洲大胆女人| 亚洲欧美国产另类| 欧美韩日高清| 国内精品久久久久久 | 日韩视频精品| 亚洲一级高清| 女仆av观看一区| 国产日韩视频| 在线视频一区二区| 日韩视频免费观看| 久久综合九色综合欧美狠狠| 国产精品久在线观看| 亚洲人成亚洲人成在线观看图片 | 久久久久久9999| 国产精品久久久久久户外露出| 亚洲国产91精品在线观看| 欧美一区二区三区在线免费观看| 亚洲综合不卡| 欧美日韩一二三四五区| 亚洲黄色在线看| 久久国产一区二区| 欧美在线免费观看亚洲| 欧美日韩一本到| 亚洲区免费影片| 亚洲欧洲精品一区| 六月婷婷久久| 在线成人激情黄色| 亚洲第一在线视频| 久久精品系列| 国产亚洲欧美日韩一区二区| 亚洲一区二区三区四区中文| 亚洲视频精品在线| 欧美精品一区二区精品网 | 欧美中文字幕| 国产精品视频你懂的| 一本色道久久综合亚洲精品不卡| 日韩一级欧洲| 欧美日本一道本在线视频| 亚洲福利视频一区二区| 亚洲国产乱码最新视频| 久久亚洲国产成人| 激情欧美一区二区三区在线观看| 欧美一区二区观看视频| 欧美一区日本一区韩国一区| 国产精品视频男人的天堂| 亚洲免费网址| 久久精品国产亚洲5555| 国产亚洲午夜| 久久精品道一区二区三区| 久久精品99久久香蕉国产色戒| 国产拍揄自揄精品视频麻豆| 欧美一区二区三区免费看| 久久久久久久激情视频| 国产综合色精品一区二区三区| 久久精品123| 欧美国产另类| 日韩天天综合| 亚洲免费视频在线观看| 国产精品试看| 欧美中文字幕久久| 美国十次了思思久久精品导航| 亚洲福利视频在线| 亚洲视频在线看| 国产精品免费一区豆花| 欧美在线观看视频| 狂野欧美激情性xxxx欧美| 亚洲人成高清| 亚洲综合国产精品| 国产真实精品久久二三区| 亚洲国产精品欧美一二99| 欧美高清你懂得| 夜夜爽www精品| 性欧美激情精品| 激情一区二区三区| 日韩视频一区二区| 国产精品美女久久久久久久| 欧美一区二区三区另类| 欧美成年人视频网站| 日韩一级大片| 久久精品亚洲一区二区三区浴池| 原创国产精品91| 亚洲视频在线观看| 国产日韩欧美视频| 亚洲人成小说网站色在线 | 国产精品乱码一区二区三区| 欧美一区二区三区视频免费| 欧美大片第1页| 亚洲天堂激情| 麻豆亚洲精品| 一区二区精品在线观看| 久久不射中文字幕| 在线日韩中文| 午夜精品av| 亚洲国产精选| 性8sex亚洲区入口| 亚洲国产高清自拍| 午夜欧美精品久久久久久久| 在线播放一区| 欧美亚洲在线| 亚洲精品四区| 久久久久久久精| 中国成人亚色综合网站| 欧美99在线视频观看| 亚洲一区二区少妇| 欧美刺激性大交免费视频| 亚洲综合另类| 欧美电影在线观看完整版| 亚洲欧美成人一区二区三区| 免费黄网站欧美| 亚洲欧美日韩综合国产aⅴ| 欧美黑人多人双交| 欧美在线免费观看| 欧美午夜欧美| 日韩视频在线观看免费| 国产曰批免费观看久久久| 亚洲性感美女99在线| 亚洲国产二区| 久久乐国产精品| 亚洲一区二区在线观看视频| 欧美精品色一区二区三区| 欧美伊人久久|