2009-09-14 00:11:37ZIP
設計流程(三)~選IC!
由設計流程二的過程,你大概也知道你需要什麼規格的IC了,這時候有個關鍵點,就是你買太好的IC就會比較貴,但是你買不夠好的IC你就會發展不出你的系統..很多人再發展系統的時候,清查IC規格,覺得這顆IC好用又便宜..可是常常會忽略一些小細節,導致該系統發展不出來...
所以這一章將會針對IC的選用稍稍的講一下..
說選IC,其實就是看你做的專題的要求,每種系列的IC都有每種系列的優缺點..
而選用的發展語言也會有不一樣的結果..像是有CPU類的IC,發展語言通常都是組合語言,C,BASIC或C++這幾種..在編譯過後的執行速度上則是組合語言>C>BASIC這種排列..但是在難易度與發展度方面卻是剛好反過來..
除非有速度上的需求,有壓榨IC的趨向,或是絕對時間間格的要求..不然一般都建議選用C來寫...
而沒有CPU的IC(像是FPGA)類的則不在此限..一般常用的的就是Verilog或是VHDL,最近則出現了System C,System C我沒涉略所以只會對Verilog與VHDL來比較,一般來講,VHDL跟VERILOG這兩種語言編譯起來速度不會差太多,是VHDL會比較快一些..但是以程式的完成速度的話..而Verilog寫起來會比較快,比較簡單(因為VHDL對於程式的檢查很嚴格..)..特別是有C的底,也了解這類IC的運作方式的話,發展速度將會比用VHDL還快...
以現在在台灣比較常出現的控制IC去做一個優缺比較:
1.AVR,8051,PIC等的單晶片系列:
使用單晶片的好處就是便利,可以使用比較便宜的價格達成較簡單的控制
8051:是很早很早以前就已經出現的好用控制器,以便宜著稱,但是速度上並不
會太快,但是因為是使用複雜指令集,所以除非使用C語言去寫,不然對於
內容要快速入門不是很容易...
AVR:可以說是8051的加強又加強版,速度上拼贏8051與PIC,而且功能與PIC旗
鼓相當,幾乎PIC有的功能AVR幾乎都有!!!而且使用RISC指令集,程式也比
8051好寫,是適合8051的人進階使用..所以..感覺上很像是ATMEL為了跟
MICROCHIP的PIC互拼所做出的產品...
PIC:在價位上比AVR還便宜,但是比8051還貴的一顆IC,速度也剛好是借在前兩
顆IC之間,架構完全是另外一種架構,也是RISC指令集,發展的功能很多,
要發展小系統還是可以考慮這系列的IC的...
2.DSP:
DSP最好用的地方是需要用到連續相乘或相加或是相乘加(濾波)的這種影像或是聲音處理,雖說也是可以拿來作控制,但是一般人都會使用其他的IC去當核心,然後單純的把影音資料放入DSP去運算...DSP的速度已經算很快了..但是使用C去發展的話,相對速度將會被拖慢下來,若是只用組合語言發展的話,指令就夠你去搞了..後面DSP的CSS有出一種新的處理法"Linear Assembly"可以看成是嵌在C語言裡的組合語言..有助於速度的發展..
3.ARM,AVR32:
32位元系統,速度夠快,非常適合用來處理周邊或是發展大一點的系統..比如手機系統等等的..因為內置MMU所以也可以直接掛載Linux,沒MMU的則可以掛載uCLinux.掛系統後,要發展軟體就可以比較快速一些....
而AVR32還有內置硬體JAVA語言加速功能..也是很不錯的功能呢..
選IC重點是在於你要求的控制速度根控制複雜度..
若是複雜度根反覆運算的機率比較高的話,就會建議使用具有CPU的IC做控制..
但是若是複雜度比較低,程序比較單純,有絕對速度要求或是需要同時處理很多訊號的,就可以考慮選用FPGA..
使用具CPU的控制IC,要計算的是速度,也就是跑到結果出來需要多少時間..
當然這個是需要算一下的..在經過一些外部電路的推算(可以從你希望的Sensor 取樣頻率,或是外部傳輸介面的速度去推),比如我的MIDI訊號的基本傳送速度31.25kHz,那麼我使用8051或是AVR或是更高級的都是可以的...但是若是要發展影像(27M Byte/Sec)系統的話,就會直接建議使用DSP,要發展網路監控(100Mbps)等的高速設備,就會建議使用ARM了.
而考慮使用FPGA的話,就不用考慮這麼多時脈的問題,因為FPGA除了他的拴鎖時間之外,其他的可以以併行的運行方式達成高速的運算要求..可是.他唯一的缺點就是,空間無法太大..程式塞多了就滿了...
不過在一般的選法,可以先看你的題目的控制目標,然後推測它的輸出入的訊號速度,還有控制複雜度..去決定使用的IC...至於是該系列的哪種IC勒..這個就是後面才會講的..
所以這一章將會針對IC的選用稍稍的講一下..
說選IC,其實就是看你做的專題的要求,每種系列的IC都有每種系列的優缺點..
而選用的發展語言也會有不一樣的結果..像是有CPU類的IC,發展語言通常都是組合語言,C,BASIC或C++這幾種..在編譯過後的執行速度上則是組合語言>C>BASIC這種排列..但是在難易度與發展度方面卻是剛好反過來..
除非有速度上的需求,有壓榨IC的趨向,或是絕對時間間格的要求..不然一般都建議選用C來寫...
而沒有CPU的IC(像是FPGA)類的則不在此限..一般常用的的就是Verilog或是VHDL,最近則出現了System C,System C我沒涉略所以只會對Verilog與VHDL來比較,一般來講,VHDL跟VERILOG這兩種語言編譯起來速度不會差太多,是VHDL會比較快一些..但是以程式的完成速度的話..而Verilog寫起來會比較快,比較簡單(因為VHDL對於程式的檢查很嚴格..)..特別是有C的底,也了解這類IC的運作方式的話,發展速度將會比用VHDL還快...
以現在在台灣比較常出現的控制IC去做一個優缺比較:
1.AVR,8051,PIC等的單晶片系列:
使用單晶片的好處就是便利,可以使用比較便宜的價格達成較簡單的控制
8051:是很早很早以前就已經出現的好用控制器,以便宜著稱,但是速度上並不
會太快,但是因為是使用複雜指令集,所以除非使用C語言去寫,不然對於
內容要快速入門不是很容易...
AVR:可以說是8051的加強又加強版,速度上拼贏8051與PIC,而且功能與PIC旗
鼓相當,幾乎PIC有的功能AVR幾乎都有!!!而且使用RISC指令集,程式也比
8051好寫,是適合8051的人進階使用..所以..感覺上很像是ATMEL為了跟
MICROCHIP的PIC互拼所做出的產品...
PIC:在價位上比AVR還便宜,但是比8051還貴的一顆IC,速度也剛好是借在前兩
顆IC之間,架構完全是另外一種架構,也是RISC指令集,發展的功能很多,
要發展小系統還是可以考慮這系列的IC的...
2.DSP:
DSP最好用的地方是需要用到連續相乘或相加或是相乘加(濾波)的這種影像或是聲音處理,雖說也是可以拿來作控制,但是一般人都會使用其他的IC去當核心,然後單純的把影音資料放入DSP去運算...DSP的速度已經算很快了..但是使用C去發展的話,相對速度將會被拖慢下來,若是只用組合語言發展的話,指令就夠你去搞了..後面DSP的CSS有出一種新的處理法"Linear Assembly"可以看成是嵌在C語言裡的組合語言..有助於速度的發展..
3.ARM,AVR32:
32位元系統,速度夠快,非常適合用來處理周邊或是發展大一點的系統..比如手機系統等等的..因為內置MMU所以也可以直接掛載Linux,沒MMU的則可以掛載uCLinux.掛系統後,要發展軟體就可以比較快速一些....
而AVR32還有內置硬體JAVA語言加速功能..也是很不錯的功能呢..
選IC重點是在於你要求的控制速度根控制複雜度..
若是複雜度根反覆運算的機率比較高的話,就會建議使用具有CPU的IC做控制..
但是若是複雜度比較低,程序比較單純,有絕對速度要求或是需要同時處理很多訊號的,就可以考慮選用FPGA..
使用具CPU的控制IC,要計算的是速度,也就是跑到結果出來需要多少時間..
當然這個是需要算一下的..在經過一些外部電路的推算(可以從你希望的Sensor 取樣頻率,或是外部傳輸介面的速度去推),比如我的MIDI訊號的基本傳送速度31.25kHz,那麼我使用8051或是AVR或是更高級的都是可以的...但是若是要發展影像(27M Byte/Sec)系統的話,就會直接建議使用DSP,要發展網路監控(100Mbps)等的高速設備,就會建議使用ARM了.
而考慮使用FPGA的話,就不用考慮這麼多時脈的問題,因為FPGA除了他的拴鎖時間之外,其他的可以以併行的運行方式達成高速的運算要求..可是.他唯一的缺點就是,空間無法太大..程式塞多了就滿了...
不過在一般的選法,可以先看你的題目的控制目標,然後推測它的輸出入的訊號速度,還有控制複雜度..去決定使用的IC...至於是該系列的哪種IC勒..這個就是後面才會講的..
上一篇:設計流程(一)~定目標!
下一篇:設計流程(二)~系統方塊圖!