ECN Taiwan
  設定為首頁 放入書籤 訂閱印刷版
               
Friday, 2008 年 11 月 21 日
首頁 關於我們 本期內容 前期雜誌內容 RSS 訂閱 展覽 刊例 聯絡我們

電路板及模組

電腦、週邊及聯網器件

電機/機械器件

積體電路

微波及RF元件

光電及顯示器

封裝及內部互連

被動及分離元件

感測器及致動器

軟體

醫用電子

嵌入式系統

電源和調節元件

測試與測量

搜索:
 
 
產品信息搜索:
 
 
 
 
Issue > Nov 2006 > 封面特寫
 
 
Ads by Google
 

強化MCU浮點運算功能


( 01 Nov 2006 )
作者:Jon Titus, 資深技術編輯

雖然編譯器和組譯器(Assembler)可以產生嚴謹的整數算術代碼,但浮點運算可能需要耗用大量記憶體的代碼資料庫,以進行模擬算術運算。所以,需要計算三角函數值或指數值時,可能就要安裝一個小型MCU。

近來,工程師已能用硬體實現算術運算。在70年代中期,我曾將一顆德州儀器公司的TMS0117二進位碼十進位運算晶片與一個微處理器系統作連接,用於四功能的數學運算。雖然有點拼湊的味道,但這個電路確實能工作。在80年代,IBM個人電腦主機板上便開始內建算術輔助運算器晶片(Intel 8087)的插槽。

較新的16位元和32位元處理器都具有內置運算能力,具有足夠的空間作儲存或運算,幫助完成浮點算術運算。當然,微控制器仍然要忍受記憶體稀少之苦,限制了算術能力。要知道每個浮點數值需佔用32位元。(假定符合IEEE 754規定。) MCU開發者不必放棄希望,現在可考慮增加最新的外接算術晶片。Micromega公司(www.micromegacorp.com)提供一種8接腳的浮點算術晶片μM-FPU V2,可以透過SPI或I2C埠連接到主處理器。該晶片價格為15美元,這對算術浮點運算來說是極具競爭力的價格(該晶片亦可執行長效整數運算)。

V2晶片本身是8位元處理器,可完成四功能算術運算,產生三角函數和指數值,提供邏輯運算,以及完成很多其他工作。十五個整型寄存器用於保存臨時值或常量。(預裝常量保存計算時間,晶片中有常數0、1、e和D。)轉換功能可以用於測試和監控內部的運算。

Micromega總裁Cam Thompson表式,該公司將於近期推出一款新型μM-FPU V3晶片。該晶片具有128個寄存器,可以在EPROM中保存256個值。開發人員能使用比V2更多的運算功能,晶片提供38種內置的單位轉換,如英里轉公里,還有19個科學與工程常數。Thompson表示,V3的性能是較早V2晶片的十倍,能承擔高速處理器的算術運算工作。

按Thompson的說法,很多開發人員都用該晶片將感測器資料轉換成有用的數值。例如,用Steinhart-Hart方程作熱電偶資料的線性化時要用到指數項和自然對數。客戶還可以用Micromega晶片處理GPS資料。

由於晶片可使用多達64個用戶定義的函數,開發人員可以設定一些自動完成複雜計算的命令。Thompson指出:“使用者不必連續地收發資訊,當得到數值並處理下一個計算時才提供該值。中間結果保存在晶片中,直到需要答案為止。”

Thompson給了我一片V2晶片,我將其連接到教學麵包板上的Parallax BASIC Stamp BS2p24模組上,這是我最喜歡用的實驗系統(圖1)。Micromega網站提供了豐富的檔案,包括設置說明、邏輯圖,以及用於BASIC Stamp模組的測試程式。我手邊沒有建議使用的外接溫度感測器,於是簡單地在代碼中預置了一個測試值。該晶片正確地將9位元攝氏溫度值轉換成華氏溫度。在此例中,我使用了SPI介面,並用BASIC Stamp的SHIFTOUT和SHIFTIN命令作串列通訊。


圖1:μM-FPU V2晶片可以透過Parallax公司(www.parallax.com)的麵包板,連接到BASIC Stamp模組上。此電路使用了雙線SPI介面,但晶片亦提供I2C和三線介面。

V2晶片用一個1位元組或2位元組的運算碼表明正在進行的工作。例如,除法FDIV(9x)完成A = A/B運算。要預先指定A寄存器,並用9x碼中的四個LSB指定B寄存器。將A寄存器看作容納結果的累加器,而B寄存器則作為運算元的來源。可以任意將15個可用寄存器設為A和B寄存器。

熟悉A和B寄存器的命名要花一些時間,但透過一些實例就可以掌握要領。對於非浮點方面的行家,Micromega還提供工具軟體,可以在十六進位和浮點表述之間作相互轉換。此外,還可以下載IDE,用於輸入方程,並產生μM-FPU V2運算碼,以及各種微控制器指令。

該晶片還有具有另一個令人驚喜的功能,可以在數值與ASCII字串之間回來轉換。例如,ATOF命令用於將一串字元轉換成浮點值。我用了下面這個指令集:X180, ATOF, "180.0", 0, FSET,將浮點值180.0放到稱為X180的寄存器(並預先定義到內部寄存器3)中。(Parallax BASIC編譯器會將命令串轉換為十六進位值。)以類似方式,可以將結果以ASCII碼格式移出到自己的MCU。還可以讀出浮點值或長整型值。

備註:在www.ecnmag.com上可以找到內文提及的簡單測試程式;點選“Current Issue”(或2006年8月1日的檔案文章),透過連結即可找到本文。

 

 

 
 
ADVERTISEMENT
 
 
 
Ads By Google
 
 
   
   
     
     
     
 
 
     
         
 
眈壽恅梒
   
   
 
技術新聞
   

Tessera推出晶圓級相機封裝授權服務

使用反相升降壓拓墣的降壓轉換器

Openmoko將公開Neo Phones線路圖

新版PCI Express電氣效率確認軟體

具板載處理功能的資料擷取卡

具雙埠記憶體的16位元PCI數位轉換器

車用AC測力計

動態無線系統測試模擬器

客製化電子測試方案

高溫測量探針

   
  更多內容 >>
 
     
         
 
 
     
         
 
產業連結
   
Photonics Association (Singapore)
bullet Singapore Industrial Automation Association (SIAA)
bullet Taiwan Semiconductor Industry Association (TSIA)
 
 
     
         
 
 
 
         
 
 
         
 
   
 
         
 
 
 
 
 
© 2008 Reed Business Information, a division of Reed Elsevier Inc.
All rights reserved. Use of this web site is subject to its Terms and Conditions of Use. View our Privacy Policy.