中文亚洲日韩欧美,亚洲精品中文字幕无码蜜桃,亚洲精品人成无码中文毛片http://www.bjzhda.cnzh-cn曙海教育集團論壇http://www.bjzhda.cnRss Generator By Dvbbs.Netofficeoffice@126.comimages/logo.gif曙海教育集團論壇正確看待DVD-Super Multi與DVD-RAM技術http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=12&ID=1472&Page=1wangxinxin2010-11-18 13:57:01DVD刻錄時代的到來似乎很慢,1996年DVD就已經成型,但DVD刻錄機走向大眾也是從去年才剛剛開始。

  DVD刻錄時代的到來似乎也很猛,看看今年DVD刻錄機的價格,真是感慨其向平民普及的決心與速度。

  DVD刻錄時代,一直有三股力量在相互抗衡著,它們就是DVD-RAM、DVD-R/RW、DVD+R/RW。一時間,用戶似乎摸不著頭腦,但很快的,就像VHS與BETA一樣,局勢也逐漸明朗了一些。DVD-RAM的高可靠性、高尋址能力再加上極差的兼容性,使其得到了專業用戶的賞識,而DVD±R/RW則以出色的與傳統DVD和兼容能力贏得了普通大眾的歡迎。

  DVD±R/RW之間可以說半斤八兩,在普遍應用的級別上,兩者很難分出個好與壞,但DVD-R/RW比后者先行。雖然DVD+R/RW的能力在誕生之日起就很強,但業界仍然要尊重前輩(確切地說是其開創下來的市場),而且在某些方面,DVD-R/RW還是要比DVD+R/RW強的,不信你就試試在影碟機上的兼容性,即使用上了BookType,仍然不會比前輩出色。所以,DVD論壇(DVD-R/RW的養父母)與DVD+RW聯盟(DVD+R/RW的創造者)如今都在重視著對方,雖然前者一直不允許后者使用DVD的Logo,雖然后者也一直在攻擊前者的能力低下……事實上,DVD-R/RW的確有些落后了,DVD論壇的臃腫的機構設置阻礙了DVD-R/RW速度規格的提升。雖然業界的廠商已經推出了16X DVD-R的試制品,但官方的8X標準才剛剛獲得通過,而那邊1-16X的DVD+R以及雙層DVD+R標準(1.29版)已經發布好一個月了(5月28日發布),驅動器都也已經整裝待發,準備大規模上市。

圖片點擊可在新窗口打開查看 圖片點擊可在新窗口打開查看

現在已經很難找到沒有上面兩個標志的DVD刻錄機了

  但畢竟雙方在市場上的勢力是相當的,所以有遠見的廠商率先跨越兩大家族推出了DVD-Dual產品,這個集合了DVD±R/RW的規格讓用戶不再煩惱。而與DVD-Dual同時面世的DVD-Multi格式,則很少有人去問津,因為那里有個DVD-RAM,普通用戶一聽到這個名字可能轉身就走了。嗯,因為DVD-RAM對傳統DVD不太友善(兼容性),也導致了用戶對它的不太友善,這又能怪誰呢?

  然而,仍有更大野心的廠商希望能統一產品層面上的標準,其實這么做的原因也在于現在還真的不好說哪個標準真的會走向滅亡,因此最省事的方法就是全部支持,從而誕生了DVD-SuperMulti這樣一個與DVD-Dual一樣的,沒有官方支持的一個業界規格。這也就是我今天要談論的主角。

  DVD-SuperMulti=(DVD-Dual)+(DVD-RAM)

  雖然題目是講DVD-SuperMulti,但為什么在前面仍要介紹DVD±R/RW呢?那是因為要強調它們的存在,從而也反過來為DVD-SuperMulti做一個鋪墊。

圖片點擊可在新窗口打開查看

DVD-SuperMulti實現了三大DVD刻錄規格的統一

  很多人一提起DVD-Multi或DVD-SuperMulti就會與DVD-RAM等同起來。不錯,對DVD-RAM的支持是它們的一大特色,但它不僅僅是DVD-RAM。如今,DVD論壇所推廣的DVD-Multi其實已經是空架子一個,沒有廠商繼續推出這一規格的產品,就連最堅定的支持者日本松下公司也投向了SuperMulti的懷抱,所以不提也罷。而以SuperMulti為例,我們絕不能忽視其仍然支持DVD±R/RW的事實,不能將DVD-RAM的光芒罩在其上。在筆者的眼中,DVD-SuperMulti就等于DVD-Dual與DVD-RAM的結合體。DVD-RAM是額外的贈予而不是當今市場的主角,如果愿意,你完全可以忽略它的存在,但當你覺得需要DVD-RAM時,DVD-SuperMulti就是目前唯一的解決方案——道理就是這么的簡單。

]]>
海力士DRAM產品獲得ISi的Z-RAM存儲技術授權http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=12&ID=1471&Page=1wangxinxin2010-11-18 13:56:08

圖片點擊可在新窗口打開查看

    Z-RAM最初作為全球成本最低的嵌入式內存技術而應用于邏輯芯片,如移動芯片組、微處理器、網絡和其他消費應用。2005年12月AMD首次獲得該項技術授權,將這項技術應用于微處理器設計。目前此次與Hynix的合作,使Z-RAM成為超過300億美元的存儲器市場中成本最低的存儲器技術。

    “Z-RAM保證提供一種在納米工藝上制造高密度DRAM的最佳方法,”海力士研發部副總裁Sung-JooHong說。“以ISi的 Z-RAM創新為基礎,我們看到了開創全新產品平臺的潛力,這將幫助我們繼續保持和擴展在存儲器市場中所處的領先地位。”

    “海力士決定與ISi的合作是對我們Z-RAM存儲技術的實力和商業效益的進一步肯定,尤其是海力士是存儲器芯片市場的主導者,它的產品被廣泛應用于多種電子設備中,如個人電腦、服務器、工作站、顯卡以及手持設備,如手機、MP3播放器和數碼相機等,”ISi首席執行官Mark-EricJones說。“采用ISi的Z-RAM技術制成的存儲器芯片尺寸更小,成本更低。我們期待著與海力士在下一代DRAM芯片中的合作,從而為最終用戶帶來極大的性能和可用性方面的優勢。”

    ISi營銷副總裁JeffLewis說:“我們相信這是ISi和Hynix的重要里程碑。Z-RAM將對DRAM的設計和制造產生深遠影響。由于2006年DRAM產業產品銷售超過330億美元,這樣的發展將顯著地影響到整個電子行業。”

    ISi的Z-RAM與目前標準DRAM和SRAM(靜態存儲器)方案不同,因為其單晶體管(1T)位單元結構是全球最小的存儲單元,這使其成為全世界密度最高、成本最低的半導體存儲方案。通過采用絕緣體上硅結構(SOI)晶圓,Z-RAM的單晶體管存儲位單元可利用電路制造中發現的浮體效應(FBE)而變成現實。此外,因為Z-RAM是利用了SOI自然產生的效應,在存儲位單元內無須通過改變外在工藝來構建電容或其它復雜結構。

]]>
F-RAM技術為智能安全氣囊系統提供“智能性”http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=12&ID=1470&Page=1wangxinxin2010-11-18 13:54:55  
  目前汽車安全氣囊系統引入了兩項主要的創新技術。第一,新型的安全氣囊系統增加了“智能性”:不同于以往系統一律采用最大的展開力。仿佛所有的事故和乘客都是一模一樣的,新系統是根據事故和乘客的具體參數來決定氣囊的展開力度。這些參數可能包括碰撞的嚴重程度、乘客的體重和座椅相對氣囊的位置等。這種可變的展開力將會大受那些曾有過普通安全氣囊沖擊而造成不愉快經驗人士的歡迎。智能型氣囊還能識別乘客座椅是否空置,以決定需不需要使用乘客安全氣囊。考慮到每輛車的安全氣囊數目正在增多加上即使發生小事故也必需更換的成本支出,這種創新的技術將有助于用戶省下相當可觀的維修和保險成本。
  
  第二,越來越多的車輛安裝了事故數據記錄儀(EDR),用來收集碰撞相關的信息,類似于飛機“黑匣子”。EDR功能一般被包含在安全氣囊電子控制單元(ECU)中。這樣置配很自然,因為EDR沒有飛機黑匣子的那種存活性要求,安全氣囊控制器主要是接收各個重要傳感器的輸入信息。而車輛制造商也指出沒有空間安裝獨立式的EDR。
  
  這兩種安全氣囊存儲應用對存儲器的要求都相當高,但彼此差異很大。鑒于在嚴重的事故中,系統很有可能掉電,因此都需要非易失性存儲器。事故重建意味著事故前后的相關數據必須存儲在系統可寫入的可靠的非易失性存儲器中。
  
  在“智能安全氣囊”系統上ECU設計人員希望針對具體的事故采用合適的展開力。這就不僅需要加速度信息同時也需要乘客信息。新型的智能安全氣囊系統對存儲器有獨特的要求,即需要把直到事故發生前的乘客信息都記錄下來,其中包括座椅位置和乘客體重。為了在事故之前能夠獲得有關乘客情況的可靠記錄,就必需連續存儲信息。送往安全氣囊ECU的參數數據是由車輛內部的加速度傳感器和傳感器產生的。這種連續存儲需要能夠遠比傳統閃存寫入更頻繁的存儲技術。
  
  EDR技術的關鍵在于所需的數據量及存儲這些數據所需要的時間。新的規范將大大擴展需要采集的數據。當發生嚴重事故時,極有可能出現掉電情況。對于這種情況,EDR系統必須趕在系統電源失去之前把數據保存下來。事故中,供電可能會突然失去,而傳統的非易失性存儲解決方案需要很長的時間來對新信息進行寫入。
  
  非易失性鐵電存儲器(F-RAM)便提供了能解決上述需求的技術能力。它和其它非易失性方案一樣都能提供可靠的非易失性存儲能力,特別出眾之處在于它的可擦寫次數非常多,寫入速度也極快。
  
  安全氣囊應用中最常選用帶有串行外設接口(SPI)的5V工作電壓F-RAM存儲器。這些器件可以在很高的總線接口速度下進行寫操作,具有超過1萬億次(1后面12個零!)的擦寫次數,足以讓智能安全氣囊連續寫入,以提供無縫的乘客數據記錄。串行速度可以從5MHz到20MHz間的F-RAM且無延遲寫操作能夠讓主處理器盡可能快地存儲數據,幾乎沒有信息丟失的風險。F-RAM具備的非易失性特點、無限的擦寫次數,以及快速數據寫入能力,是下一代安全氣囊系統的理想存儲器。
  
  以前汽車應用中所用的主要非易失性存儲技術是浮柵器件,如EEprom或閃存。浮柵器件通過一層SiO2薄膜把多晶硅柵與溝道隔離開來。要對器件進行編程,需在控制柵上產生很高的電壓,使得電子可獲得足夠的動能,穿透隔離層,將電子(N溝道器件)加速到源極。(見圖1)。

圖片點擊可在新窗口打開查看
圖1

  溝道中形成了一個耗盡區,這樣,在特定的柵極電壓下,已被編程的部分被置于“off(較高阻抗)”,而沒有被編程或沒有被擦寫的器件為“on(較低阻抗)”。
  
  隨著汽車設計要求的復雜性日益增加,浮柵存儲技術的局限性越來越明顯。例如,它的編程處理需要數毫秒ms時間,這對高安全性的應用來說已經是非常長的時間了。在碰撞事件中,電源迅速丟失,幾乎沒有信息能夠及時保存到浮柵器件中。
  
  編程處理還對隔離層具有破壞性,因此這類器件的擦寫次數很有限,一般在10萬次到100萬次之間。就乘客傳感器而言,數據更新的次數即使是對上限100萬次來說也太頻繁了。對于一般的每秒一次的寫入速度要求,浮柵器件使用不到12天中就會達到使用壽命。若是把數據緩沖到RAM中,在斷電時再寫入到浮柵非易失性存儲器中,又會在EDR中產生寫入速度問題,因此并非真正有效的解決方案。
  
  在智能安全氣囊系統中,不僅必需存儲碰撞事故中的數據,還需要存儲事故發生前的數據。利用滾動日志來存儲碰撞前的數據是很理想的方法,但對浮柵存儲器件而言,這種解決方案已證實存在問題,因為它們的擦寫次數有限。由于安全氣囊模塊具有很大的電容,以便存儲足夠的能量來激活安全氣囊,故在事故發生之后可能有足夠的殘余電量把緩沖器中的數據寫入到非易失性存儲器中。能夠寫入的數據量取決于尚可用的電量,也即電容中的殘余能量和存儲器的寫入速度。典型2Kbyte浮柵存儲器的寫入速度可以達到約每5us寫入4字節。故而,要寫入整個浮柵存儲器可能需要1秒多的時間。
  
  F-RAM能夠提供極高的擦寫次數和速度,有效解決了上述問題。Ramtron的F-RAM技術把鐵電材料和標準半導體芯片設計及制造技術結合在一起,推出了非易失性存儲器和模擬/混合信號產品。這些產品具有快速讀/寫性能、幾乎無限的擦寫次數和靜態RAM(SRAM)的超低功耗,并在掉電時能夠安全存儲數據,這些都是標準RAM技術所無法提供的功能。
  
  F-RAM單元采用業界標準CMOS工藝制造,通過兩個電極板之間的鐵電晶體來形成電容,類似于DRAM電容的構造。但是不像一般的易失性存儲器那樣把數據作為電容上的電荷來存儲,F-RAM是把數據存儲在鐵電晶體內。
  
  當在鐵電晶體上施加一定電場時,晶陣的中心原子在電場作用下沿電場方向在晶體內運動,它通過一個能量壁壘(energybarrier)造成電荷尖峰。內部電路感測到這一電荷尖峰,并且設置存儲器。電場消失后,中心原子會保持在原來的位置,從而保存存儲器的狀態。(見圖2)。

圖片點擊可在新窗口打開查看  
圖2

  鐵電薄膜放在CMOS基層之上,并置于兩電極板之間,使用金屬互連并鈍化后完成鐵電制造過程。(見圖3)。

圖片點擊可在新窗口打開查看  

]]>
英特爾計劃推出15nm制程FB-RAM技術http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=12&ID=1469&Page=1wangxinxin2010-11-18 13:53:29
  由于英特爾公司聲稱這款據稱是全球最小的FBC絕緣硅(SOI)平面組件,未來將可能用于其15nm制程中,因而目前最令人感到好奇的問題就是,該公司是否終將認同并采用絕緣硅(SOI)技術。在相關的一篇文章中,英特爾還介紹了一種針對SRAM高速緩存單元所用的自適應電路技術。目前這兩種技術仍處于研發階段。

  這種FBC也被稱為浮體RAM(FB-RAM)內存單元。在英特爾邁向此一領域的競賽中,正虎視眈眈尋找機會的還包括其競爭對手──AMD公司。兩年前,AMD從Innovative Silicon(ISI)公司取得了一項嵌入式FBC技術的授權。

  由于目前采用電容器的技術正逐漸被淘汰,因而FBC在這幾年來一直被吹捧為傳統高速緩存的最佳替代技術。相較于目前所有微處理器上使用標準6顆晶體管(6T)的高速緩存相較,FBC更適合越來越高的內存密度要求。

  “標準DRAM中具有一個電容器和一個晶體管。”ISI公司表示,“電容器用于儲存邏輯狀態1或0,晶體管則用于提供存取電容器的其它電路。為了讀取DRAM內存單元,晶體管先被導通,才能讓電容器上的電荷流到位在線,以形成一個可被檢測到的低電壓。”

  ISI公司營銷副總裁Jeff Lewis警告,解決與DRAM中電容器有關的許多重要問題都迫切需要一種新架構。“目前的架構幾乎已無法再讓電容器縮小了。”Lewis在加州Anaheim所舉辦的設計自動化會議(DAC)中指出。

  Lewis推測,“DRAM的微縮也可能只剩下一代或二代的發展空間”,因而可能刺激內存設計對于FBC的需求。不過,他也指出FBC技術還存在許多問題。“導入一種新的內存技術畢竟是一項艱巨的挑戰。”他認為。

  一般而言,FB-RAM無需使用電容器,而內建于塊狀硅中的傳統DRAM位單元則需使用電容器。在bulk CMOS中,構成晶體管主體的電荷連至固定電壓。而在SOI中,無任何連接的晶體管主體則懸浮在硅晶的厚氧化層上方。為了使浮體具備電容器的性能,在浮體兩側都必須施加一個嚴密控制的電壓。

  相較于高速緩存設計中所采用的傳統嵌入式內存,FBC技術可使其位容量增加3至4倍,英特爾公司技術與制造部門副總裁兼組件研究總監Mike Mayberry表示。因此,該技術可加速運算速度,Mayberry在一次電話會議中指出。

  英特爾公司早在2006年時就曾論及一種采用FBC技術的雙閘極晶體管架構。而在此次的VLSI大會上,這一家芯片業巨擘描繪了一種采用SOI的平面架構,看來似乎有點兒顛覆原先立場的意味。此外,相較于其兩大競爭對手──AMD與IBM公司采用SOI的處理器設計,英特爾完全排除了在主流產品中使用該技術的可能性。

  “FBC是在在SOI上所建構的一種平面組件,但其薄膜厚度與傳統的SOI完全不同。”英特爾公司指出,“例如,埋氧層厚度僅10nm,而一般大部份的SOI建置則為100nm。這意味著針對底氧層(BOX)較厚的SOI設計不適用于較薄的BOX,反之亦然。這是在作出技術選擇之前亟需解決的許多整合問題之一。”

  在一篇題為‘在薄硅與薄層BOX上建構采用高K+金屬閘極的微縮FBC內存適用于15nm及更先進制程’(A Scaled Floating-Body Cell Memory with High-k + Metal Gate on Thin Silicon and Thin BOX for 15-nm Node and Beyond)的論文中,英特爾公司詳細介紹了據稱是目前世界上采用FBC技術的最小平面組件,其功能組件尺寸可微縮至30nm的閘極長度。Mayberry并表示,英特爾公司所發表的組件要比其它現有公開文獻中所介紹的類似組件更微縮兩個世代。

  在這篇論文中,英特爾公司表示,“采用60nm閘極的這款組件具有適當的內存保存能力。而且,在這個規模大小下,1個位單位可能小于0.01平方微米,因而使其非常適合用于15nm制程節點上。同時,在實際組件和仿真結果之間也存在極佳的一致性,我們可預期該技術將連續微縮到10nm技術節點。”

  在一篇相關論文中,英特爾公司采取了另一條開發路線。“該論文展示了全新的自適應電路調整技術,可讓內存單元更能忍受制程、電壓和溫度的變異,因而使得SRAM快取單元的最小工作電壓持續降低。”英特爾公司表示。

  根據這家芯片業巨擘表示,“在某些工作條件下,針對45nm測試芯片的測量顯示,一個單元發生錯誤的次數減少了26倍。這些電路可以讓英特爾在未來的幾代制程中,持續提供更高的性能和強大的特色,而不至于產生故障。”

  為了展現其不落人后的實力,AMD公司也曾兩年前取得ISI所開發的浮體SOI內存授權,據稱這是一種用于內存和微處理器的Z-RAM(零電容器)技術。據稱AMD公司現正積極尋求可用于更大型板級L3高速緩存的相關新技術。

  韓國的海力士半導體(Hynix)公司也同樣取得了Z-RAM技術的授權。然而,AMD和海力士半導體至今仍尚未推出采用該技術的產品。 圖片點擊可在新窗口打開查看
 
]]>
面積減半 采用Z-RAM技術新型DRAM問世http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=12&ID=1468&Page=1wangxinxin2010-11-18 13:51:46
以下內容含腳本,或可能導致頁面不正常的代碼
說明:上面顯示的是代碼內容。您可以先檢查過代碼沒問題,或修改之后再運行.
]]>
ARM7&ARM9雙核平臺的技術分析http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=12&ID=1467&Page=1wangxinxin2010-11-18 13:44:00            目前嵌入式系統教學平臺市場上的主導產品都是基于ARM7或ARM9架構的,一般都認為ARM7屬于低端產品、ARM9屬于高端產品,也出現了所謂的“ARM7&ARM9覆蓋高端&低端的教學平臺”。宣傳“兩套 CPU 子板都是可以自由插拔,一套實驗系統變化為兩套, ARM7 的實驗系統可以實現基礎的 ARM嵌入式教學,主要包括指令實驗,基礎接口實驗, UCOS-II 操作系統實驗和 uCLinux 操作系統實驗; ARM9 夏新手機軟件,夏新手機游戲,夏新手機鈴聲,夏新手機主題,夏新手機圖片,夏新手機導購,夏新手機大全MD
a6WN        gV)E

的實驗系統可以實現高端的 ARM 嵌入式教學,主要包括擴展接口實驗, Linux 操作系統實驗和 WinCE 操作系統實驗。”這種觀點有誤導用戶的嫌疑。因為ARM9和ARM7同屬于ARMv41,是屬于中低端系列的ARM微處理器。目前市場上真正高端的ARM架構處理器是與ARMV5TE體系兼容的Intel  XScale,如PXA255和PXA270。    從嵌入式系統教學平臺的發展來看,未來會形成兩個發展方向。即一方面向高端的XScale系列發展,主要面向計算機、軟件等專業,這一類高端平臺具有強大的計算能力和多媒體功能,教學內容側重于操作系統、驅動程序和軟件應用,培養消費電子、手持設備、無線網絡、手機游戲等領域的嵌入式軟件人才;另一方面就是ARM7/ARM9系列的中低端教學平臺,主要面向電子工程、自動化、儀器儀表等專業,這類平臺具有豐富的接口和功能,教學內容側重于微處理器接口設計、驅動開發和系統應用,培養工業自動化、測控、智能儀表等應用領域的嵌入式技術人才。  宣稱采用兩種CPU子板的方式,實現ARM7&ARM9的功能,是完全沒有必要的,而且增加了用戶的成本的維護的復雜性,其原因如下:  1、從ARM體系結構的教學內容上看,ARM9的指令集完全兼容ARM7,教學上沒有任何區別。所以ARM指令實驗和基礎接口實驗不是ARM7的專利,做過ARM系統開發的人都很清楚,用ARM9一樣可以完成ARM7的這些教學實驗內容; 2、從操作系統的教學內容上看,目前教學中大都采用μCOS-II或Linux。μCOS-II代碼簡單,易教易學,Linux功能強大,但對學生的基礎要求較高。目前市場上大多數ARM7教學平臺都支持μCOS-II或uCLinux,ARM9基本上都支持Linux和WinCE。但μCOS-II不是  ARM7的專利,在ARM9上完全可以運行。而uClinux是Linux的一個子集,無論是從開發著者的角度還是從教學的角度去理解,Linux系統可以完全兼容uCLinux的應用。宣稱支持ARM7和ARM9的雙內核,主要原因是因為他們的技術能力較弱,無法完成μCOS-II  在ARM9上的移植和擴展工作,所以采用ARM7來彌補μCOS-II的教學內容。試想,如果有一款ARM9平臺,能夠運行μCOS-II、Linux、WinCE等操作系統,我們為什么還需要ARM7來畫蛇添足呢?事實上,這樣的平臺已經有了,一些技術實力較強的公司已經把μCOS-II移植到了ARM9上,如UP-NETARM2410和UP-NETARM2410S等。  3、從硬件設計的教學內容上看,支持ARM7和ARM9的雙內核的平臺,造成了硬件資源的浪費,難以發揮ARM7和ARM9各自的優勢。比如:用s3c44b0和s3c2410處理器作為ARM7和ARM9的內核,s3c2410平臺支持USB   host和USB client,支持真彩色TFT LCD。而主平臺為了兼容s3c44b0,不得不使用256色STN的LCD;如果要想有USB host或者client接口,不得不使用其他芯片外擴。這都會使ARM9處理器的功能受到限制,不能充分發揮ARM9處理器的性能。4、從產品的成本的服務維護上看,采用支持ARM7和ARM9的雙內核的平臺,無疑會增加產品的成本,因為教學平臺最貴的芯片就是微處理器和存儲器,而從教學角度看,這部分增加的成本是沒有意義的。如果從科學角度看,這種做法又浪費資源,其性價比無不如一塊開發板。此外,采用支持ARM7和ARM9的雙內核的平臺,降低了系統的可靠性,學生在實驗過程中,會經常切換兩種內核,其損壞的概率會大大增加,增加后續維護成本 由此可見,僅僅一個ARM9平臺就可以同時滿足中低端教學的需求,額外添加ARM7去滿足低端教學任務,只能認為是畫蛇添足。平白增添了硬件成本,還限制了硬件平臺的擴展。嵌入式系統教學的目的應該是為了讓學生學到一種嵌入式平臺開發和設計的方法,其變化主要體現在運行不同操作系統上,而不是硬件是否采用ARM7還是ARM9上。教學思想應是“授人以漁”,學生學到的是設計方法,將來不管是ARM7, ARM9,還是XScale,甚至包括MIPS、alpha、68k、powerpc等其它體系結構的微處理器,對于一個優秀的嵌入式系統工程師來說都是一樣的。
]]>
ARM Linux進程創建源代碼分析http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=12&ID=1466&Page=1wangxinxin2010-11-18 13:43:15?所有的這三個系統調用都要使用do_fork函數,它是創建進程的主體,我們將在下面重點介紹
?原型分別如下:
/* Fork a new task - this creates a new program thread.
* This is called indirectly via a small wrapper
*/
asmlinkage int sys_fork(struct pt_regs *regs)
{
return do_fork(SIGCHLD, regs->ARM_sp, regs, 0);
}
/* Clone a task - this clones the calling program thread.
* This is called indirectly via a small wrapper
*/
asmlinkage int sys_clone(unsigned long clone_flags, unsigned long newsp, struct pt_regs *regs)
{
if (!newsp)
newsp = regs->ARM_sp;
return do_fork(clone_flags, newsp, regs, 0);
}
asmlinkage int sys_vfork(struct pt_regs *regs)
{
return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, regs->ARM_sp, regs, 0);
}?這三個系統調用的區別是:
sys_fork是完整的從父進程派生出一個子進程;sys_clone可以通過參數clone_flags決定需要復制給子進程的資源;而sys_vfork則只是產生了一個新的task_struct,它還是和父進程共享其余的所有的資源,所以它不是真正的進程,只能算是線程,他將組塞父進程的運行直到自己運行結束為止。
?有一個信號叫做SIGCHLD,當子進程停止或結束,父進程將收到一個SIGCHLD信號,默認動作是忽略。 ?也就是說fork才是真正的clone。?背景知識:進程和進程的狀態
#define TASK_RUNNING 0
#define TASK_INTERRUPTIBLE 1
#define TASK_UNINTERRUPTIBLE 2
#define TASK_ZOMBIE 4
#define TASK_STOPPED 8?1) TASK_RUNNING:含義是假定任務已經處于運行隊列中。至于不是已經處于運行狀態的原因是由于將一個任務標識為TASK_RUNNING和將該任務移動到運行隊列不是一個原子操作。
?2) TASK_INTERRUPTIBLE:含義是任務處于休眠狀態但可以通過一個信號或者休眠中止時鐘喚醒。
?3) TASK_UNINTERRUPTIBLE:含義類似于TASK_INTERRUPTIBLE,但任務不能被喚醒。
?4) TASK_ZOMBIE:含義是任務已經被中止但它的狀態還沒被父進程獲取。
?5) TASK_STOPPED:含義是由于任務控制信號或者ptrace系統調用,任務已經被停止。
?int do_fork(unsigned long clone_flags, unsigned long stack_start,
? struct pt_regs *regs, unsigned long stack_size)
?{
? int retval;
? struct task_struct *p;
? struct completion vfork;
?? retval = -EPERM;
if (clone_flags & CLONE_PID) {
? if (current->pid)
? goto fork_out;
? }
?? retval = -ENOMEM;
?上面這段代碼的意思是: 如果clone_flags的CLONE_PID置位,則除非是0號進程
否則將返回錯誤信息EPERM. clone_flags的定義將在后面介紹,0號進程就是操作
系統啟動時創建的第一個進程.上面的代碼中if(current->pid)要成立,除非是0號
進程.其中pid是進程標志符
?p = alloc_task_struct(); /* franc: we will alloc one page space as task_struct */
? if (!p)
? goto fork_out;
?? *p = *current; /* franc: just copy all the info of its parent to this new process */
?? retval = -EAGAIN;
?上面代碼的意思是: 申請一個新的內存控制塊,其中alloc_task_struct是在/arch
/arm/kernel/process.c中定義:
struct task_struct *alloc_task_struct(void)其中:
ll_alloc_task_struct() 在/include/asm-arm/proc-armv/processor.h中定義:
#define ll_alloc_task_struct() ((struct task_struct *) __get_free_pages(GFP_KERNEL,1))
?_get_free_pages是要申請兩個頁面,頁面是內存管理的有關內容,這兒大家只要一個頁面占4K個字節就可以了.兩個頁面就是8K個字節,而大家查一下進程控制塊的大小就可以知道它只有1600B左右,也就是說它只有1.5K左右,那么還剩下將近6.5K的空間去有什么用呢?其實剩余的空間是作為內核棧空間.如果申請內存空間失敗則直接棧道fork_out處執行,fork_out在后面有定義
?然后就將父進程的所有信息直接拷貝給它。
?if (atomic_read(&p->user->processes) >= p->rlim[RLIMIT_NPROC].rlim_cur
? && !capable(CAP_SYS_ADMIN) && !capable(CAP_SYS_RESOURCE)) /* franc: check if we have spawned too many processes */
? goto bad_fork_free;
?? atomic_inc(&p->user->__count); /* make the process number tracable */
? atomic_inc(&p->user->processes);
?上面代碼的意思: 如果父進程已經用了用戶進程,則修改p->user->_count和
p->user->processes,將其數目加1,當然除非用戶進程的 RLIMIT_NPROC
已經超過額定數目。 ]]>
成功移植vsftpd到arm平臺http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=12&ID=1465&Page=1wangxinxin2010-11-18 13:42:16今天將vsftpd成功移植到我的arm平臺,現將移植過程簡單總結如下:

1. 下載vsftpd源碼,這個不用多說,不知道在哪里下載可以問google。

2. 解壓縮,然后編譯,用交叉編譯:make CC=arm-linux-gcc,此時編譯會出現錯誤,大概是說找不到/lib/libcap.so這個庫文件,我只是簡單的修改了一下vsf_findlibs.sh文件中的該庫的位置,如下:

locate_library /usr/local/arm/3.4.1/arm-linux/lib/libcap.so.1 && echo "/lib/libcap.so.1";

 

/usr/local/arm/3.4.1/arm-linux/lib/libcap.so.1是我的交叉編譯的庫文件路徑(我不清楚這樣改會不會有其他不穩定的隱患,但改后可以編譯,也可以運行)。

 

3.將編譯生成的vsftpd文件拷貝到arm平臺的文件系統中,如/usr/local/sbin/下。并拷貝vsftpd.conf文件到文件系統的/etc中,在我的平臺上,將改文件的內容修改為:

local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
idle_session_timeout=60
data_connection_timeout=20
listen=YES

listen_port=21

ftp_username=download
secure_chroot_dir=/data
4. 修改完配置文件后,就可以運行了:

/usr/local/sbin/vsftpd &

用ps查看一下是否有該進程,如果進程存在,就表示ftp服務啟動成功。

]]>
微軟取得可自行打造ARM處理器的技術授權http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=12&ID=1464&Page=1wangxinxin2010-11-18 13:41:05
英國晶片業者ARM上周五(7/23)宣布已更新並擴大與微軟的授權合約,將授權微軟使用ARM架構及指令集,這代表微軟將能開發專用的ARM晶片。

ARM與微軟自1997年就開始合作,原本著重在嵌入式、消費及行動產品中,ARM技術長Mike Muller表示,有了這紙新的架構授權,微軟將站在ARM技術的最前線,並能與各家企業合作以解決不同的應用領域。

ARM在新聞稿中描述得不甚明確,但IDG News引述ARM行銷副總裁Ian Drew表示,ARM已授權微軟使用該公司的架構與指令集,這種形式的授權可允許客戶設計自己的微架構,目前取得類似授權的業者並不多,包括 Qualcomm、Marvell、Infineon等。

取得相關授權的應該還有蘋果,因為蘋果為iPad平板電腦與iPhone 4自行打造的A4處理器,都是採用ARM處理器架構,惟雙方始終未證實此事。彭博社則引用分析師的看法指出微軟有可能以客製化的ARM處理器取代英特爾處理器作為新的視窗平板電腦核心,以準備在落後的平板電腦市場上急起直追。

不過,微軟最新且推廣平板應用的Windows 7作業系統仍與ARM不相容,因此市場上也出現其他諸如應用於資料中心或行動裝置上的各種猜測,總之,微軟要如何運用ARM架構的新授權迄今仍是個謎,但 ARM股價卻已受到此一消息的激勵,上周五(7/23)於倫敦股市大漲了11%]]>
arm的stackup設計討論http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=12&ID=1463&Page=1wangxinxin2010-11-18 13:38:34現在做一塊arm(PXA310)的板子,里面有要求比較多的阻抗控制,DDR, USB, bluetooth,還有一根天線
8 s) }& a$ `, P
3 ]. {9 {2 C3 @9 @/ C
8層板,top/gnd/in1/vcc/gnd/in2/vcc1/bottom(個人想法,歡迎拍磚,當然也是參考比較典型的8層stackup); P5 m% Q& V7 X" E# K4 k8 H/ B
. |) d0 s( a8 A) ?  b- e
Guideline要求DDR的microstrip 阻抗控制在90 ohm, stripline阻抗控制在60 ohm,給出的線寬為3/4,姑且不去討論制造工藝,一條net表層和內層的阻抗不一致肯定是不允許的,是我理解錯誤,還是guideline有問題呢,下面是guideline的stackup,注意是6層板的,表層的線都沒有參考層面了,如何做阻抗控制,有圖為證 圖片點擊可在新窗口打開查看
2010-5-8 02:46 上傳
下載附件 (43.58 KB)

% W7 O0 B* G. f- b8 K& w, D+ M

& G% S. j" n9 v& b  k  R! p& ~現在認為guideline是不靠譜的,需要自己做一個stackup,綜合USB差分阻抗90 Ohm,(單線也就大概40多吧),DDR的不靠譜的阻抗控制,應該如何設計stackup呢。以前沒有做過類似工作,請教一下做stackup的基本流程,或者是一個大致的思路,具體的計算我再慢慢來。7 b, G8 J1 k  i4 n9 m
電源阻抗有計算方法嗎,還是說依靠經驗做完了再做仿真沒問題就OK& e' M# I# s( _" F
]]>
ARM處理器將支援虛擬化技術http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=12&ID=1462&Page=1wangxinxin2010-11-18 13:36:35
外電報導,在日前舉行的Hot Chip研討會上ARM表示,將為其新款Cortex A處理器增加對虛擬化技術的支援。

此外,ARM亦將為其代號為Eagle的下一代處理器開發大型實體位址支援功能。業界認為,這兩項技術將有助於ARM從現有的手機市場跨入伺服器與資料中心市場。

ARM工程師在研討會中表示,包括VMware在內,目前已有多家業者為其新款晶片開發hypervisor軟體,同時,亦有業者試圖將hypervisor應用在行動與嵌入式領域。

透過虛擬化技術,開發人員能夠更快地將應用程式移植到各種不同的行動裝置中。此外,亦能夠在行動裝置上安裝多個作業系統,提供不同的使用模式。

在伺服器應用方面,由於ARM一向以低功耗處理器技術著稱,這有可能為面臨嚴苛功率挑戰的現有伺服器市場帶來新的技術選項。透過支援hypervisor虛擬化技術,ARM認為在低功耗伺服器市場應該有ARM架構的立足空間。

而大型實體位址空間延伸則包含對32位元虛擬位址到最高40位元實體位址或TB RAM的轉譯支援。ARM將會在第三季前公佈相關規範細節。

ARM表示,新款晶片即將於近期內推出,希望能在今年內開始提供授權。不過,根據過去經驗,從客戶取得處理器核心授權,到實際開發晶片與產品上市,可能要花數年的時間。
]]>
給大家分析一下幾個ARM嵌入式開發板http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=12&ID=1461&Page=1wangxinxin2010-11-18 12:24:53

I.MX31 MDK2 是一款以AR11為核心的開發板,除了嵌入式傳統的優點(剪裁小、低功耗、低成本)外,I.MX31芯片具有MPEG4全雙工功能,而且在I.MX31內部擁有一個3D模塊加速模塊,能進行3D效果處理,不占CPU資源。開發板上的電源管理芯片也是I.MX31的另一大優勢,擁有了這個芯片可以很好的控制能耗,它也成為了I.MX31 MDK2成為手持設備最佳選擇的原因之一I.MX31 MDK2開發板,高主頻配合MPEG4全雙高和一個不占CPU內存的3D加速模塊,使芯片性能大大提升,再加上開發板上的智能電源管理設備使得I.MX 31 MDK2在無屏情況下的全功能功耗只有180毫安,這些就是I.MX 31 MDK2開發板成為高校和手持設備生產商最愛的原因。它的主要應用領域是掌上3D娛樂設備、3G手機、學習機等手持設備領域。


I.MX27 MDK1 是一款以ARM9為核心的開發板,除了嵌入式傳統的優點(剪裁小、低功耗、低成本)外,I.MX27芯片具有H.264全雙工功能,其原因在于I.MX27內部集成了一個硬件編解碼模塊,采用硬件去做視頻的編解碼,不占CPU資源,這樣一來可以大大提高芯片的性能,另外,他的研發成功可以幫助客戶直接量產大大加上研發成本,所以,很多做視頻傳出領域的客戶都選擇這款產品極開發板I.MX27 MDK1主要應用在安監安防、智能手機、IP Camera、多媒體廣告機、車載娛樂設備、DVR等視頻傳輸領域, 對工程師而言,不需要花大量的時間再去研究便可以幫助公司進行生產,我個人還是很推崇這種產品的。

]]>
ARM基礎知識http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=12&ID=1460&Page=1wangxinxin2010-11-18 12:22:45ARM處理器的寄存器 h PJw3mT  
  ARM處理器共有37個寄存器。其中包括:  ;-ChTl  
  **31個通用寄存器,包括程序計數器(PC)在內。這些寄存器都是32位寄存器。 BF6Xsc0w  
  **6個狀態寄存器。這些寄存器都是32位寄存器。 h<L 7Z,  
ARM處理器共有7種不同的處理器模式,每一種模式中都有一組相應的寄存器組。在任何時刻,可見的寄存器包括15個通用寄存器(R0-R14),一個或兩個狀態寄存器及程序計數器(PC)。在所有的寄存器中,有些是各模式公用一個物理寄存器,有一些寄存器各模式擁有自己獨立的物理寄存器。 !D(/NL{j6  
通用寄存器 {Jx:U {#  
通用寄存器分為以下三類:備份寄存器、未備份寄存器、程序計數器PC 1}BEU&*N^  
未備份寄存器 ZQ],44<`  
未備份寄存器包括R0-R7。對于每一個未備份寄存器來說,所有處理器模式下都是使用同一個物理寄存器。未備份寄存器沒有被系統用于特別的用途,任何可采用通用寄存器的場合都可以使用未備份寄存器。 N*+e:xf3  
備份寄存器 OS^t3S.m  
對于R8-R12備份寄存器來說,每個寄存器對應兩個不同的物理寄存器。系統為將備份寄存器用于任何的特殊用途,但是當中斷處理非常簡單,僅僅使用R8-R14寄存器時,FIQ處理程序可以不必執行保存和恢復中斷現場的指令,從而可以使中斷處理非常迅速。 l7O6zT  
對于R13,R14備份寄存器來說,每個寄存器對應六個不同的物理寄存器,其中的一個是系統模式和用戶模式共用的;另外的五個對應于其他的五種處理器模式。采用下面的記號來區分各個物理寄存器: Zn!E\EY'  
R13_<MODE> Qt U EL$o  
其中MODE可以是下面幾種模式之一:usr,svc,abt,und,irq,fiq c<N*~Uc/1O  
程序計數器PC 3:(khR2%  
可以作為一般的通用寄存器使用,但有一些指令在使用R15時有一些限制。由于ARM采用了流水線處理器機制,當正確讀取了PC的值時,該值為當前指令地址值加上8個字節。也就是說,對于ARM指令集來說,PC指向當前指令的下兩條指令的地址。由于ARM指令是字對齊的,PC值的第0位和第一位總為0。 Rm>?h,<  
需要注意的是,當使用str/stm保存R15時,保存的可能是當前指令地址值加8個字節,也可能保存的是當前指令地址值加12個字節。到底哪種方式取決于芯片的具體設計。對于用戶來說,盡量避免使用STR/STM指令來保存R15的值。 * B"4% n  
當成功的向R15寫入一個數值時,程序將跳轉到該地址執行。由于ARM指令是字對齊的,寫入R15的值應滿足bits[1:0]為0b00,具體要求arm個版本有所不同: hIhX"=  
**對于arm3以及更低的版本,寫入R15的地址值bits[1:0]被忽略,即寫入r15的地址值將與0xFFFF FFFC做與操作。 |8gc |C  
**對于ARM4以及更高的版本,程序必須保證寫入R15的地址值bits[1:0]為0b00,否則將產生不可預知的后果。 <6E}C X-  
對于Thumb指令集來說,指令是班子對齊的,處理器將忽略bit[0]。 ,YO#iMj  
程序狀態寄存器 <s@W@M"  
CPSR(當前程序狀態寄存器)在任何處理器模式下被訪問。它包含了條件標志位、中斷禁止位、當前處理器模式標志以及其他的一些控制和狀態位。每一種處理器 9U h8*|L>  
模式下都有一個專用的物理狀態寄存器,稱為SPSR(備份程序狀態寄存器) aRZ*YFp^  
。當特定的異常中斷發生時,這個寄存器用于存放當前程序狀態寄存器的內容。在異常中斷退出時,可以用SPSR來恢復CPSR。由于用戶模式和系統模式不是異常 EA#eab  
中斷模式,所以他沒有SPSR。當用戶在用戶模式或系統模式訪問SPSR,將產生不可預知的后果。 2wl?b"T p/  
CPSR格式如下所示。SPSR和CPSR格式相同。 ?>Io-(_|  
31 30 29 28 27 26 7 6 5 4 3 2 1 0 9YQI_ G  
N Z C V Q DNM(RAZ) I F T M4 M3 M2 M1 M0 ZP *Rl<  
N——本位設置成當前指令運算結果的bit[31]的值。當兩個表示的有符號整數運算時,n=1表示運算結果為負數,n=0表示結果為正書或零。 P,nm%vOL  
z——z=1表示運算的結果為零;z=0表示運算的結果不為零。對于CMP指令,Z=1表示進行比較的兩個數大小相等。 C4<#Uhld7  
C——下面分四種情況討論C的設置方法: s!fX NPB,  
在加法指令中(包括比較指令CMP),當結果產生了進位,則C=1,表示無符號運算發生上溢出;其他情況C=0。 hIR@j=hG  
在減法指令中(包括減法指令CMP),當運算中發生錯位,則C=0,表示無符號運算數發生下溢出;其他情況下C=1。 @1N8d5iE  
對于包含移位操作的非加堿運算指令,C中包含最后一次溢出的的位的數值 N cL> 5>  
對于其他非加減運算指令,C位的值通常不受影響 o5gWA~7*  
V——對于加減運算指令,當操作數和運算結果為二進制的補碼表示的帶符號數時,V=1表示符號為溢出;通常其他指令不影響V位。 bqNaGI]w  
***Q標識位*** `1: -S$  
在ARM V5的E系列處理器中,CPSR的bit[27]稱為q標識位,主要用于指示增強的dsp指令是否發生了溢出。同樣的spsr的bit[27]位也稱為q標識位,用于在異常中 ![f-DG  
斷發生時保存和恢復CPSR中的Q標識位。 ?t4yJ3^|  
在ARM V5以前的版本及ARM V5的非E系列的處理器中,Q標識位沒有被定義。 d6TDd#;l  
%U.2j'F.  
***CPSR中的控制位*** NHGUea?  
CPSR的低八位I、F、T、M[4:0]統稱為控制位。當異常中斷發生時這些位發生變化。在特權級的處理器模式下,軟件可以修改這些控制位。 Uc3q|x |  
**中斷禁止位:當I=1時禁止IRQ中斷,當F=1時禁止FIQ中斷 65|P-\J  
**T控制位:T控制位用于控制指令執行的狀態,即說明本指令是ARM指令還是Thumb指令。對于ARM V4以更高版本的T系列ARM處理器,T控制位含義如下: f|Y8OzI~  
T=0表示執行ARM指令 (?h?5U_Hq  
T=1表示執行Thumb指令 ZV^En_#4~  
對于ARM V5以及更高版本的非T系列處理器,T控制位的含義如下 pW[.odt"  
T=0表示執行ARM指令 ?rWu^=4Co  
T=1表示強制下一條執行的指令產生未定指令中斷 %~llBn Z  
***M控制位*** +(YupN]Yw  
M控制位控制處理器模式,具體含義如下: Uy +Pm]  
M[4:0] 處理器模式 可訪問的寄存器 ?v( 12!  
ob10000 user pc,r14~r0,CPSR "6kv2lf  
0b10001 FIQ PC,R14_FIQ-R8_FIQ,R7~R0,CPSR,SPSR_FIQ 'd|0  
0b10010 IRQ PC,R14_IRQ-R13_IRQ,R12~R0,CPSR,SPSR_IRQ F8 h$PL+x  
0B10011 SUPERVISOR PC,R14_SVC-R13_SVC,R12~R0,CPSR,SPSR_SVC  l_ [T   
0b10111 ABORT PC,R14_ABT-R13_ABT,R12~R0,CPSR,SPSR_ABT Ny ,C&%  
0b11011 UNDEFINEED PC,R14_UND-R8_UND,R12~R0,CPSR,SPSR_UND BD;6.&]E  
0b11111 SYSTEM PC,R14-R0,CPSR(ARM V4以及更高版本) A +FoJ OSF  
***CPSR中的其他位*** ^s)^Fy%^  
這些位用于將來擴展。應用軟件不要操作這些位。 r0KMQFa  
在ARM體系中通常有以下3種方式控制程序的執行流程: /? /53\M  
**在正常執行過程中,每執行一條ARM指令,程序計數器(PC)的值加4個字節;每執行一條Thumb指令,程序計數器寄存器(PC)加2個字節。整個過程是按順序執行。 _$ Q"/vH  
**跳轉指令,程序可以跳轉到特定的地址標號處執行,或者跳轉到特定的子程序處執行。其中,B指令用于執行跳轉操作;BL指令在執行跳轉操作同時,保存子程 M lkyxh'C  
序的返回地址;BX指令在執行跳轉操作同時,根據目標地址為可以將程序切換到Thumb狀態;BLX指令執行3個操作,跳轉到目標地址處執行,保存子程序的返回 `>c9Iy?>5B  
地址,根據目標地址為可以將程序切換到Thumb狀態。 6e4XDT-  
**當異常中斷發生時,系統執行完當前指令后,將跳轉到相應的異常中斷處理程序處執行。當異常中斷處理程序執行完成后,程序返回到發生中斷指令的下條指 rA[L88<AO/  
令處執行。在進入異常中斷處理程序時,要保存被中斷。 k"m74XU  
;>57H1Xv ]]>
ARM Linux外部中斷處理過程http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=12&ID=1459&Page=1wangxinxin2010-11-18 12:19:20最近在學習arm linux的整套外部中斷的處理過程,在網上匯總了一些資料,整個過程差不多都了解到了。如果沒有這些資料我真是沒信心從匯編開始讀代碼,感謝 奔騰年代的jimmy.lee和 linux論壇的bx_bird。
在下面的的注釋中有一些我讀代碼時遇到的問題,要是大家知道是怎么回事,希望多多回復。


一.ARM linux的中斷向量表初始化分析

ARM linux內核啟動時,通過start_kernel()->trap_init()的調用關系,初始化內核的中斷異常向量表.

/* arch/arm/kernel/traps.c */
void __init trap_init(void)
{
extern void __trap_init(unsigned long);
unsigned long base = vectors_base();
__trap_init(base);
if (base != 0)
oopsprintk(KERN_DEBUG "Relocating machine vectors to 0x%08lx\n", base);
#ifdef CONFIG_CPU_32
modify_domain(DOMAIN_USER, DOMAIN_CLIENT);
#endif
}
vectors_base是一個宏,它的作用是獲取ARM異常向量的地址,該宏在include/arch/asm-arm/proc-armv/system.h中定義:

extern unsigned long cr_no_alignment; /* defined in entry-armv.S */
extern unsigned long cr_alignment; /* defined in entry-armv.S */
#if __LINUX_ARM_ARCH__ >= 4
#define vectors_base() ((cr_alignment & CR_V) ? 0xffff0000 : 0)
#else
#define vectors_base() (0)
#endif
  對于ARMv4以下的版本,這個地址固定為0;ARMv4及其以上的版本,ARM異常向量表的地址受協處理器CP15的c1寄存器(control register)中V位(bit[13])的控制,如果V=1,則異常向量表的地址為0x00000000~0x0000001C;如果V=0,則為:0xffff0000~0xffff001C。(詳情請參考ARM Architecture Reference Manual)
  下面分析一下cr_alginment的值是在哪確定的,我們在arch/arm/kernel/entry-armv.S找到cr_alignment的定義:

.globl SYMBOL_NAME(cr_alignment)
.globl SYMBOL_NAME(cr_no_alignment)
SYMBOL_NAME(cr_alignment):
.space 4
SYMBOL_NAME(cr_no_alignment):

.space 4

  分析過head-armv.S文件的朋友都會知道,head-armv.S是非壓縮內核的入口:

1 .section ".text.init",#alloc,#execinstr
2 .type stext, #function
3ENTRY(stext)
4 mov r12, r0

6 mov r0, #F_BIT | I_BIT | MODE_SVC @ make sure svc mode
7 msr cpsr_c, r0 @ and all irqs disabled
8 bl __lookup_processor_type
9 teq r10, #0 @ invalid processor?
10 moveq r0, #'p' @ yes, error 'p'
11 beq __error
12 bl __lookup_architecture_type
13 teq r7, #0 @ invalid architecture?
14 moveq r0, #'a' @ yes, error 'a'
15 beq __error
16 bl __create_page_tables
17 adr lr, __ret @ return address
18 add pc, r10, #12 @ initialise processor
19 @ (return control reg)
20
21 .type __switch_data, %object
22__switch_data: .long __mmap_switched
23 .long SYMBOL_NAME(__bss_start)
24 .long SYMBOL_NAME(_end)
25 .long SYMBOL_NAME(processor_id)
26 .long SYMBOL_NAME(__machine_arch_type)
27 .long SYMBOL_NAME(cr_alignment)
28 .long SYMBOL_NAME(init_task_union)+8192
29
30 .type __ret, %function
31__ret: ldr lr, __switch_data
32 mcr p15, 0, r0, c1, c0
33 mrc p15, 0, r0, c1, c0, 0 @ read it back.
34 mov r0, r0
35 mov r0, r0
36 mov pc, lr

文章出處:飛諾網(www.firnow.com):http://dev.firnow.com/course/6_system/linux/Linuxjs/2008827/137989.html

]]>
ARM 與 MIPS 比較http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=12&ID=1458&Page=1wangxinxin2010-11-18 12:17:30        這是一個幾年以來我一直想做的“功課”,之所以稱之為“功課”,而不能說是“文章”,是因為我覺得自己的知識還遠遠不夠,不管是深度還是廣度,也不管是全面性還是透徹性,我都不敢。但是我實在是很想把我的一些理解寫出來,然后能和其他朋友一起探討,糾正錯誤,補充完善,最終目的就是要加深對ARM和 MIPS 這兩種CPU架構的認識。
    這里的目前最多只能算個草稿吧,請大家不斷的補充。

[正文]
1.流水線結構 pipeline
    - MIPS 是最簡單的體系結構之一,所以使大學喜歡選擇 MIPS 體系結構來介紹計算體系結構課程。
    - ARM has barrel shifter
        shifter是兩面性的,一方面它可以提高數學邏輯運算速度,另一方面它也增加了硬件的復雜性。所以和可以完成同樣功能的adder/shift register相比,效率更高,但是也     占用更多的芯片面積。
       
    - MIPS have "branch delay slot" and "load delay slot"
        MIPS使用編譯器來解決上面的兩個問題。因為MIPS最初的設計思想就是使用簡單的RISC硬體,然后靠編譯器及其他軟體技術,來達成RISC的完整概念。

2.指令結構 instruction
    - MIPS have 32bit and 64bit architecture,but ARM only have 32bit architecture
       ARM11 局部64位
    - MIPS是開放式的架構,用戶可以在開發的內核中加入自己的指令,
    - ARM has 4-bit condition code in every instruction
      ARM 在這一點很像x86。MIPS在MIPS IV也加入"conditional move"指令,來提高pipeline的效率。
    - ARM has pre- and post-increment addressing modes
        auto-increment/decrement on load/store instructions
    - 在節省代碼空間方面,MIPS16 很類似ARM Thumb

3.寄存器 register
    -  由于MIPS內核中有32個注冊器(Register),而ARM只有16個,這種結構設計上的先天優勢,決定了在同等性能表現下,MIPS的芯片面積和功耗會更小。
    -  ARM 有一組特殊用途寄存器cp0-cp15,可以使用MCR,MRC等指令控制; 相對應的,MIPS也有cp0 0-30,使用mfc0,mtc0 指令控制。

    -  Register banking in ARM.  r8-r12 FIQ mode;r13:SP r14 R
       感覺不出banked register有什么好處。

    -  MIPS has a hard-wired-to-zero register ,but ARM not
       MIPS use register $0 for Zero

4.地址空間 address space
    -  MIPS 起始地址是0xbfc00000,會有4Mbyte的大小限制,但一般MIPS芯片都會采取一些方法解決這個問題。
       ARM沒有這種問題。
       MIPS24K 起始地址改到了0xbf000000,現在有16Mbyte的空間了。

    -   MIPS don't have to turn paging on to enable the cache.
        MIPS have the address space for both cache and un-cache
        but ARM need enable/disable cache

5.功能 function
    -   Float point: MIPS64 has.
        ARM's support for FP is limited, and usually not included, and it is a 32 bit architecture
    -   ARM use JTAG,MIPS use EJTAG。Debug工具一般兩種都支持。使用起來感覺差不多。

6.性能 performance
    -  具體性能比較,因為差異性太大,所以很難分出誰好誰壞。從個人經驗來講 MIPS4k和ARM9基本上是同一個級別的,但ARM9性能似乎要比MIPS4K好。
       同樣是32bit的MIPS24K性能上比MIPS4K有很大提升,也應該比ARM9要好些。
       因為沒有用過ARM11和MIPS34K的芯片,沒法比較,但感覺這兩個似乎是一個級別的。

7.應用
    -  在1000MHz以上的應用,很難找到采用ARM架構的產品。
       MIPS架構用在200MHz或者是266MHz以下的應用比較少,而這恰恰是ARM的主攻市場。
    -  ARM 在手機等便攜式領域,MIPS 在住宅網關、線纜調制解調器、線纜機頂盒等
    -  ARM 采用硬核授權;MIPS 采用軟核授權,用戶可以自己配置,做自己的產品。

8.未來發展
    -  ARM的下一代走向多內核結構,而MIPS公司的下一代核心則轉向硬件多線程功能(multithreading)
       MIPS 的multithreading 很類似Intel 的 HyperThreading技術。從現在的發展來看,多內核占上風。

9.總結
    自己感覺ARM和MIPS在一開始的RISC的設計上有很多不同,但隨著技術的發展,各自揚長避短,好的技術大家都會使用。比如ARM11和MIPS R1000就使用了很多一樣的技術。感覺RISC做到了極至就都一樣了。

]]>
ARM體系結構的技術特征http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=12&ID=1457&Page=1wangxinxin2010-11-18 12:15:54
  ·Load/Store體系結構

  ·固定的32位指令

  ·3地址指令格式

  在Berkeley RISC設計采用的特征中被ARM設計者放棄的RISC的技術特征有:

  ·寄存器窗口

  在早期的RISC中,由于Berkeley原型機中包含了寄存器窗口,使得寄存器窗口的機制密切地伴隨著RISC的概念,成為一般RISC的一大特征。Berkeley RISC處理器的寄存器堆中使用寄存器窗口,使得任何時候總有32個寄存器是可見的。進程進入和退出都訪問新的一組寄存器,因此減少了因寄存器保存和恢復導致的處理器和存儲器之間的數據擁塞和時間開銷。這是擁有寄存器窗口的優點。但是寄存器窗口的存在以大量寄存器占用較多的芯片資源為代價,使得芯片成本增加,因此在ARM處理器設計時未采用寄存器窗口。盡管在ARM中用來處理異常的影子(shadow)寄存器和窗口寄存器在概念上基本相同,但是在異常模式下對進程進行處理時,影子寄存器的數量是很少的。

  ·延遲轉移

  由于轉移中斷了指令流水線的平滑流動而造成了流水線的“斷流”問題,多數RISC處理器采用延遲轉移來改善這一問題,即在后續指令執行后才進行轉移。在原來的ARM中延遲轉移并沒有采用,因為它使異常處理過程更加復雜。

  ·所有指令單周期執行

  ARM被設計為使用最少的時鐘周期來訪問存儲器,但并不是所有指令都單周期執行。如在低成本的ARM應用領域中普遍使用的ARM7TDMI,數據和指令占有同一總線,使用同一存儲器時,即使最簡單的Load和Store指令也最少需要訪問2次存儲器(1次取指令,1次數據讀/寫)。當訪問存儲器需要超過一個周期時,就多用一個周期。因此,并不是所有ARM指令都在單一時鐘周期內執行的,少數指令需要多個時鐘周期。高性能的ARM9TDMI使用分開的數據和指令寄存器,才有可能把Load和Store指令的指令存儲器和數據訪問存儲器操作單周期執行。

  最初的ARM設計最關心的是必須保持設計的簡單性。ARM的簡單性在ARM的硬件組織和實現上比指令集的結構上體現得更明顯。把簡單的硬件和指令集結合起來,這是RISC體系的思想基礎;但是ARM仍然保留一些CISC的特征,并且因此達到了比純粹的RISC更高的代碼密度,使得ARM在開始時就獲得其功率效率和較小的核面積的優勢。]]>
基于ARM的實時測控系統開發平臺http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=12&ID=1456&Page=1wangxinxin2010-11-18 12:15:02
我們開發了基于ARM內核處理器的NetCARM7開發板,通過在嵌入式實時多任務操作系統μC/OS-Ⅱ上加入Interniche公司的嵌入式TCP/IP協議棧實現了一個網絡化、智能化、高性能的現代實時測控系統開發平臺。此外,通過JTAG在線調試工具BDI2000 RDI for ARM和集成開發環境IAR EW的結合,大大提高了程序調試的效率。

1 平臺設計
ARM內核處理器具有高性能、低功耗、低成本、低開發難度等一系列優點,是測控系統由8位機升級到32位機的理想選擇。此外,ARM7、ARM9、ARM10、XScale的指令兼容,已有的軟件資源和開發經驗不會由于升級到更高性能的處理器而受到巨大的損失。

(1)平臺的硬件基礎
我們開發了NetCARM7開發板(處理器為Atmel公司的ARM7TDMI內核的AT91M40800,主頻可達40 MHz)作為中低端實時測控系統開發平臺的硬件基礎。AT91M40800性能已經可以滿足一般測控系統的各種需求,功能簡單易用,雙面板就可以形成穩定硬件設計,大大降低了開發成本。板上將處理器的所有引腳引出,可以根據實際的項目需求靈活地擴展出新的應用;集成了多達2 MB的 SRAM,保證用戶代碼可以獲得最高的性能。1 MB Flash ROM用來滿足絕大多數項目的需求。板上預留了JTAG端口,通過Abatron公司的BDI在線仿真器和IAR公司的集成開發環境Embeded Workbench for ARM 可以實現各種程序的在線調試。板上提供了2個串口,還可以將處理器的UART配置成SPI,除了完成通信功能以外,還可以很容易地連接A/D變換器,滿足測控系統的需求。板上還擴展了10 M以太網接口。在網絡控制器方面,選用了低成本符合NE2000標準的RTL8019,為平臺提供了網絡化的硬件基礎。此外,板上還集成了液晶及行列式鍵盤接口,可以很方便地為嵌入式應用系統提供友好的用戶交互方式。硬件平臺如圖1所示。

(2)開放源碼的嵌入式多任務操作系統
測控系統所要完成的工作越來越復雜,程序越來越龐大,需要管理的外設越來越多,只有擁有嵌入式多任務操作系統,擁有穩定工作的硬件基礎,開發工作重點才能由原來硬件的調試、軟件的 DEBUG轉變為對于實際應用系統的性能的提高、智能化軟件的編寫。此外,只有在一個完整的、具有統一編程規范的操作系統基礎上,使用高級語言開發出的應用程序,才可能具有良好的可移植性,才可能被重復利用。嵌入式多任務操作系統是實現現代實時測控系統開發平臺的唯一途徑。操作系統與模塊化硬件設計結合起來,共同構成一個可以重復利用的軟硬件數字系統平臺,除了可以最大限度地提高開發的效率、減少資源的浪費外,還可以通過長期對于該平臺的研究,逐步優化平臺軟硬件資源,提高其性能,并滿足日益復雜的應用需求。

目前大多商用嵌入式操作系統出于商業利益的考慮,除了使用該操作系統的每件產品要收取版稅以外,要么只提供操作系統核心部分二進制文件,要么對源代碼的收費十分昂貴,對于此類操作系統的使用者來講,幾乎無法拿到操作系統的源代碼。這樣,一方面產品的進一步發展受制于人;另一方面對于嵌入式應用系統容易出現隱患,無法從根本上避?quot;后門"。只有對開放源代碼的操作系統進行不斷的理解、改造、優化,才有利于我國嵌入式開發水平的穩步提高。

對于小型實時測控系統來說,源代碼公開的、具有很好可移植性的、可固化可裁剪的、高穩定性與可靠性、搶占式多任務的μC/OS-Ⅱ非常適合!代碼簡潔的μC/OS-Ⅱ已經應用于照像機業、醫療儀器、音響設備、發動機控制、網絡接入設備、高速公路電話系統、ATM機、工業機器人等嵌入式實時系統。

(3)網絡化
TCP/IP協議棧使得嵌入式系統可以通過Internet將通信距離無限擴展。10M以太網使得大量數據的快速傳輸成為可能。這樣,除了可以充分利用PC機上各種資源,完成數據的存儲、分析、統計工作外,還可以實現測控系統間的數據交換,對于智能化、模塊化的嵌入式設備集群的實現提供了另一種途徑。PPP協議,可以通過調制解調器實現遠程的數據交換、狀態控制等功能,為嵌入式系統提供了更靈活的控制、監測方式。

我們選用了Interniche公司(http://www.iniche.com)開放源碼的嵌入式TCP/IP協議棧。Interniche使我們很容易在μC/OS-Ⅱ的調度下為開發平臺增加網絡通信和網絡管理等功能。由于它是專門為嵌入式系統而設計的,占用的系統資源很小。Interniche協議全部用標準C語言。它除了可以運行在各種RTOS下,如μC/OS、VRTX、CMX、Threadx等,還可以在沒有RTOS的環境下獨立運行。此外,Interniche還在μC/OS-Ⅱ的基礎上專門為其嵌入式TCP/IP協議棧編寫了自己的嵌入式實時多任務操作系統:ChronOS。ChronOS除了保持對已經廣泛使用的μC/OS-Ⅱ的兼容性以外,還使嵌入式TCP/IP協議棧與RTOS更加緊密地結合在一起,來滿足各種現代應用對RTOS和嵌入式TCP/IP協議相結合的迫切需求。

常用的Interniche包括:
① 核心協議。
◇ NicheStackTM--InternicheTCP協議包含TCP、UDP、IP、TFTP、DHCP Client、ICMP、ARP、SLIP、BootTP、DNS Client。
◇ Niche ToolTM--菜單驅動的協議調試和測試工具(包含在NicheStack和Nichelite中)。
◇ NicheLiteTM--Interniche微型化的TCP/IP協議,全部代碼在12KB以內;它包含全部的     NichestackTM所有的協議和1個最少化的Socket API,易于移植到從8位到32位CPU上。
可選擇應用模塊: PPP、Multilink PPP、PPPoE、Telnet(Server&Client)、FTP(Server&Client)、IP Multicast、NichePOP3。它使TCP/IP上的附加模塊增加了POP3 Email服務器收郵件功能。

② 基于WEB管理和配置協議。
◇ WebportTM--嵌入式Web服務器,讓最終用戶通過WWW瀏覽器配置和監控嵌入式設備而避免去編寫專用的GUI界面。這些界面多數是與主機OS相關的(如Win98),而且需要目標環境大量的資源,如文件系統。
◇ Email Alerte--為嵌入式系統增加預告和報警功能。它允許用戶向本地或遠程的Email地址發出預先設置好的信息,比如某個條件下的報警信息。

2 開發平臺的具體實現

(1)開發測試板的硬件測試
完成NetCARM7設計、板焊接以后,使用Abatron公司 (http://www.abatron.ch) JTAG仿真器BDI2000,通過編寫BDI配置文件對NetCARM7板進行初始化,初步驗證板上CPU工作是否正常,檢查SRAM、Flash ROM是否可以正常讀/寫。

(2)BDI2000結合IAR EW的軟件測試
在板上存儲器正常工作的基礎上,使用IAR公司 (http://www.iar.com) 的集成開發環境Embedded Workbench編寫出簡單的測試程序,其中包括匯編語言、C語言。只要在EW中利用它提供的嵌入式C/C++優化編譯器、匯編器、連接定位器,就可以生成目標機的可執行程序;利用EW的C-SPY調試器中支持的RDI接冢?涂梢院虰DI2000建立連接,直接將編寫的代碼下載到板上在線仿真。由于BDI2000仿真器是通過10M以太網連接計算機,并且通過JTAG接口與目標機相連,BDI2000與目標機的通信速率可達16Mb/s,程序下載速率可達320 KB/s,因此可以大大提高平臺軟件開發的效率。
在初步的測試程序編寫完成以后,逐步對板上的其它外設和通信端口進行測試。

(3)串口監控程序
NetCARM7上的串口除了可以提供少量數據傳送和控制信息的輸入/輸出以外,為了方便平臺的軟件維護,我們還開發了一個基于板上串口的監控程序,經RS232接口就可將PC與NetCARM7相連,完成以下功能:① 顯示處理器各狀態下寄存器的值;② 修改指定地址的SRAM、FlashROM中的內容;③ 查看指定地址的存儲器中的內容;④ 將用戶編寫的代碼下載到NetCARM7的指定地址的SRAM、Flash ROM中;⑤ 從指定地址開始執行用戶代碼;⑥ 通過設置跳線,選擇從用戶放在FlashROM中的代碼直接啟動(上電后直接運行用戶的應用程序);⑦ 支持用戶設置的軟件中斷,在中斷以后可以使用①、②、③項功能,用以方便用戶調試自己的代碼。這樣,在平臺用于實際的測控系統產品以后,在儀器工作現場只需改變跳線就可以使板上的監控程序工作,通過串口升級整個系統軟件,也包括監控程序本身,在沒有JTAG調試工具的時候,方便地對可能出現的比較簡單的問題進行修復。

(4)μC/OS-Ⅱ的移植
對μC/OS-Ⅱ的移植在BDI2000和IAR EW的幫助下變得非常簡單。在完成CPU的初始化以后,首先對時鐘節拍進行設置(10~100Hz)。對AT91M40800只需編寫相應的定時器中斷處理程序,在程序中調用操作系統的OSTimeTick(),并在其AIC(Advanced Interrupt Controller )中設置定時器的優先級別,并將定時器中斷處理程序的地址放到相應的中斷向量表中即可。使定時器產生中斷,必須在開始多任務調度后,即在第一個任務中使能定時器。其次,對μC/OS-Ⅱ移植主要集中在includes.h、OS_CPU_A.S、OS_CPU_C.C等CPU相關文件的移植,上層任務調度部分不需要任何修改。對于多任務操作系統,只需將復雜的應用分成簡單的、相互聯系的任務,再把各個不同優先級的任務交給操作系統去管理就可以了。

(5)Interniche嵌入式協議棧的移植
BDI2000結合IAR EW在線調試對于驅動程序的編寫的幫助作用更加明顯。對于同樣具有良好可移植特性的Interniche協議棧,只需要根據以太網控制器RTL8019手冊上的詳盡描述,編寫出發送包、接收包的函數,以及用于以太網控制器的外部中斷處理程序就可以完成對Interniche的網絡部分的移植。由于Interniche協議棧也是可以獲得源碼的,所以對于任何網絡控制器都可以通過不斷的調試最終完成自己的驅動程序。此外,為了方便調試,使Niche ToolTM工作,還應該完成對Interniche中向串口收發字符putchar(); getch()的移植,就可以在PC端使用超級終端經過串口與NetCARM7上的Interniche 基于命令行交互了。Interniche的各種協議簇可以根據需要由μC/OS-Ⅱ調度的狀態查詢任務。這樣μC/OS-Ⅱ就和Interniche一起構成了現代實時測控系統開發平臺的軟件核心。

3 開發平臺靈活的網絡應用
(1)圖形化操作界面
圖形化操作界面是基于Interniche 的Webserver,通過WWW瀏覽器實現的。
利用Interniche提供的WebportTM,讓最終用戶通過局域網或廣域網訪問嵌入式測控系統,在WWW瀏覽器中設置測控設備工作參數,監控其運行狀態及察看測量結果,而避免為嵌入式測控系統專門去編寫專用的GUI交互界面。在不同的儀器設備中的界面只需編寫不同的HTML頁面,結合CGI技術就可以完成各種靈活、友好的交互功能了。這些界面只需要目標機提供存儲空間就可以了。

(2)真正的遠程控制
利用Interniche提供的PPP撥號上網,使用Email Alerte為嵌入式測控系統增加預告和報警功能,測控設備就可以向遠程的Email地址發出預先設置好的信息,通知測控設備的工作情況,實現嵌入式測控設備真正的"無人值守"遠程控]]>
基子DSP的高動態GPS接收機關鍵技術討論http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=12&ID=1455&Page=1wangxinxin2010-11-18 12:14:16
GPS接收機的實時動態性能、定位精度以及功能的豐富性與其所選用的CPU性能有很大關系。具有較大動態范圍的接收機的實時運算量大、刷新速度高,對微處理器提出了更高的要求,即接收機應具有較高的數字信號處理能力。DSP芯片具有適合于數字信號處理的軟件和硬件資源,它運算速度快、接口方便、編程方便、穩定性好、精度高、集成方便,可用于復雜的數字信號處理算法。因此筆者的GPS接收機使用DSP芯片作為中央處理器。在此基礎上,采用一系列的算法,如利用接收機原始的偽距和偽距變化率進行GPS/INS組合算法和抗多徑算法及設計新的載波跟蹤環路等,提高接收機的抗干擾和動態性能及定位精度。

1 接收機的結構設計

采用相關接收技術的GPS接收機一般可以分為三個功能模塊:射頻前端模塊,信號處理模塊和應用處理模塊,如圖1所示。高動態GPS接收機組成與其類似,關鍵在于信號處理模塊具有快速捕獲功能和較大的捕獲、跟蹤帶寬。

信號處理模塊的主要功能是對信號進行捕獲、跟蹤、解擴、解調等,提取觀測量和導航電文數據。GPS擴頻信號的解擴一般通過相關接收技術完成,信號處理模塊的核心就是相關器。多通道接收機一般采用多通道相關器實時地跟蹤4顆或4顆以上的衛星信號。

以GP2010、GP2021芯片組作為接收前端和相關器,GP2021由時基產生電路、地址譯碼器、狀態寄存器及12通道獨立跟蹤模塊等組成。其中每一獨立跟蹤模塊包含載波DCO、碼DCO、相關器和相應的載波整周計數器、碼相位和歷元計數器等。 相關器還提供了一個5.714MHz時鐘給GP2010,對GP2010的4.309MHz信號進行欠采樣,得到1.405MHz的中頻數字信號。GP2010輸出中心頻率為1.405MHz的中頻信號給GP2021。GPS接收機前端和相關器如圖2所示。

根據DSP芯片運算速度、價格、軟硬件資源、運算精度、開發工具、功耗等因素,以TI公司的32位DSP芯片TMS320VC33作為中央處理器進行GPS信號處理和定位求解。其運算速度為75MIPS,單指令周期為13ns,內置1.1Mbit RAM,由0.18μm CMOS工藝制造。

DSP功能包括信號收集處理、GP2021硬件控制、相位跟蹤和導航數據解調環路、GPS導航電文提取、電文推算、導航定位求解等[1](見圖3)。

  信號收集處理主要完成從相關器輸入正交、同相超前和滯后通道的相關積分值,根據這些積分值實現碼環、載波環捕獲和跟蹤過程中的判決和濾波等功能[2]。

GP2021硬件控制主要完成碼環、載波環路的閉合控制過程。根據相位跟蹤環路和碼環、載波環路輸出的控制量動態地調節GP2021的碼DCO和載波DCO中的值,實現數據解調。

相位跟蹤和導航數據解調環路是載波跟蹤環路的最后一個環節,由它實現載波相位的抽取和數據解調。

接收機充分利用DSP處理器的功能,將以上軟件都集中在一片DSP處理器中運行。DSP芯片的高速運算性能使得部分硬件功能軟化,大大縮小了接收機的體積,同時增強了系統的靈活性。

在碼和載波跟蹤環路中,許多地方使用了數字濾波器。由于TMS320VC33計算精度很高,可以實現幅頻特性很陡直的濾波器,完成帶寬很窄的濾波。另外,DSP在進行數字信號處理過程中,僅受量化誤差和有限字長影響,在處理過程中不引入其他噪聲影響,有較高的信噪比。而這些正是筆者跟蹤環路、跟蹤頻率斜升信號所必須的。同時,用DSP軟件編程實現數字濾波,只需修改編程過程中的幾個設計參數,就能靈活方便地實現不同性能的濾波器,從而改變跟蹤環路的環路特性,為環路的調試帶來極大的便利和靈活性。

2 動態GPS接收機關鍵技術研究

(1)實時有效的GPS星的歷書的推算:為快速捕獲信號,快速地定位,縮短冷啟動時間,必須保證實時有效的GPS星的歷書的存在。衛星的最新歷書直接由用戶根據較早的星歷導出,通過外推得到冷捕搜星時刻的有效數據。現在,經過對間隔一個月的星歷進行推算,GPS星軌道長半徑α、偏心率e、軌道面傾角i、軌道準經度Ω0、軌道近地點角矩ω、平近點角M、星鐘參數af0、af1都可達到相當的精度,其中a、e、i的值變化不大,同時設6個攝動修正參數為零。這樣,就可得間隔一個月后的歷書。

  t1時刻

af0=:0.596651807427D-04 af1=0.579802872380D—11

t1+30天時刻

af0=0.724918209016D-04 af1=0.477484718431D-11

t1+30天時刻的推算結果

afo=0.7237169739D-04 af1=0.4706628D-11

t1時刻 t1+30天時刻

Ωt1=-2.09716567564 Ω0t2=-2.72117917258

ωt1=-1.71643691820 ωt2=-1.67529031669

Mot1=3.08373107049 Mot2=-2.08799859062

由toe1,時刻的星歷可推算出toe2時刻的星歷

計算得出Ω1ot2=-2.720653,ωt2=-1.666083,

Mlot2=-2.085210

(2) 時鐘特性對高動態接收機的動態性能影響的研究:時鐘特性(頻率飄移和老化率)對高動態接收機的動態性能有較大的影響,在高動態接收機中必須予以考慮并盡量消除之。其中,頻率飄移的消除大約可以使冷啟動時間縮短60s。

(3)高加速度下的載波跟蹤環路的研究:為檢測高動態GPS信號,需要設計碼環及載波環的捕獲與跟蹤數字系統。當使用對信號同時進行時域(碼相位)和頻域(多普勒頻移)的二維搜索從而對載波多普勒頻移逐次逼近掃描的串行搜索法時,在高動態下,由于碼的捕獲是分頻段進行的,載波跟蹤環路對碼跟蹤環路提供速度輔助,且由于碼的跟蹤是在頻率誤差范圍500Hz以內進行的,一定范圍內的高加速度引起的頻率變化率對碼的捕獲和跟蹤影響不大,環路失鎖首先從載波跟蹤環路開始。同時,一定范圍內的高速度只影響頻率捕獲所涉及到的頻段數而對頻率跟蹤影響不大。因此,在高動態下,在CPS信號的碼跟蹤和載波捕獲與跟蹤問題中解決在高加速度下的載波跟蹤問題具有十分重要的意義。需設計出具有較大動態范圍的載波跟蹤相關算法。該算法應同時兼顧在高加速度和高加速度環境下的環路工作特性。

現在,筆者已設計出具有較大動態范圍的載波跟蹤環路,并使用在接收機中,但環路的各項具體指標正在測試中。接收機載波跟蹤模塊工作流程圖如圖4所示。

(4)對原低動態接收機的相位跟蹤環路的改進。四項鑒頻器和叉積鑒頻器實現精確的頻率跟蹤,相位跟蹤和導航數據解調環路是載波跟蹤環路的最后一個環節,由它來實現載波相位的抽取和數據解調。到叉積鑒頻器時只能實現碼鎖定、載波鎖定。位同步和幀同步狀態只有在相位跟蹤和導航數據解調環路正確工作后才可實現。而只有當幀同步(即數據可以正確解調下來并實現幀同步)后,接收機才可得到正確的偽距。此后建立導航定位方程組并準確定位。故而,如相位跟蹤和導航數據解調環路不能正常工作,接收機將不能定位。適當擴大載波跟蹤環路等效噪聲帶寬BLF,跟蹤精度降低,載波跟蹤環路產生的各項誤差會反應到相位跟蹤環路,但捕獲時間縮短且鎖相環的動態范圍會得到改善;同時,對于相位跟蹤環路,由于它的線性牽引有效范圍有限,如果可以擴大這個范圍,則可補償由于變寬而對相位跟蹤環路造成的影響,同時增加相位跟蹤環路對載波跟蹤環路補償作用的范圍,從而改善在高加速度下載波跟蹤性能。

  (5)輔助跟蹤環路的設計:信號一旦非正常失鎖如何快速重新捕獲,還必須結合GPS星歷進行輔助跟蹤環路的設計。

(6)冷啟動算法的設計:當接收機無歷書存儲或由于長時間未開機造成歷書無效時接收機開機即處于盲捕狀態。而歷書預報誤差較大時,接收機將花費較長時間進行GPS星的捕獲和星歷下傳后才可準確定位。而準確的軌道參數和星鐘參數推算并輔之以合理的冷啟動搜星算法則可使接收機快速定位。對接收機接收到的GPS信號的載波多普勒頻移進行了分析并給出其各組成部分的計算公式,同時根據實驗結果對各組成部分對接收機星捕獲占用時間的影響進行了分析,提出了通過消除接收機時鐘頻率漂移并輔之以有效歷書推算的新的冷啟動算法,大大縮短了高動態GPS接收機冷啟動的時間。在靜止的接收機中預先輸入接收機本地概略地址和時間的情況下,冷啟動時間縮短至25s以內。

3 實驗

時間:2003.9.5~9.27

接收機狀態:靜止,接收機預先輸入接收機本地概略地址和時間,有歷書推算:

星號 15 26 21 29

接收機測得的多普勒頻移值 7320 2579 4120 2381

推算得到的多普勒頻移值 7201 2566 4356 2210

程序設置的多普勒頻移值 7201 2566 4356 2210

4顆星達到載波跟蹤狀態所需時間:21s

不考慮接收機時鐘漂移的冷啟動時間:82s

考慮接收機時鐘漂移后的冷啟動時間:21s 相關的型號資料 TOP223Y DB-9  BT136-600E TOP223Y]]>
ARM異常處理http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=12&ID=1454&Page=1wangxinxin2010-11-18 12:12:26異常類型 ARM定義了如下類型的異常(江南七怪,這樣好記): (1) RESET異常:由于執行RESET指令或外部RESET信號產生的異常 (2) SWI異常:執行SWI指令產生的異常,通常用于提供系統調用接口 (3) IRQ異常:ARM的IRQ Signal被觸發所產生的異常 (4) FIQ異常:ARM的FIQ Signal被觸發所產生的異常 (5) Prefetch Abort異常:預取指令時產生的異常 (6) Data Abort異常:存取內存數據時產生的異常 (7) Undefined instruction異常:執行unknown指令時產生的異常 執行模式 當產生異常后,CPU會進入相應的異常模式并處理該異常: (1) RESET和SWI異常:CPU進入Supervisor模式 (2) IRQ異常:CPU進入IRQ模式 (3) FIQ異常:CPU進入FIQ模式 (4) Prefetch Abort和Data Abort異常:CPU進入Abort模式 (5) Undefined instruction異常:CPU進入Undefined模式 向量地址 ARM的異常向量地址可以處于4G物理空間的低端(0x00000000起),也可以處于高端(0xffff0000起),具體是哪種情況,根據具體的CPU及其配置而定。下面是7種異常的向量地址(挎弧內為高端情形): (1) RESET異常:0x00000000 (0xffff0000) (2) Undefined instruction異常: 0x00000004 (0xffff0004) (3) SWI異常:0x00000008 (0xffff0008) (4) Prefetch Abort異常: 0x0000000c (0xffff000c) (5) Data Abort異常: 0x00000010 (0xffff0010) (6) IRQ異常: 0x00000018 (0xffff0018) (7) FIQ異常: 0x0000001c (0xffff001c) 每個中斷向量為4字節,一般的操作系統在該地址處放置一條跳轉指令“LDR PC,終端處理函數地址”。另外要注意的是,在IRQ異常和Data Abort異常之間空了4個字節,這4個字節是保留的。 處理過程 處理過程包括兩個部分: (1) 進入:這個過程由CPU負責 (2) 退出:這個過程由OS負責 在捕獲到某個異常后,啟動“進入”過程,該過程內CPU執行如下動作: (1) 將當前PC的值(或PC + 4,或PC + 8)保存到R14的某個影子寄存器中。到底選擇哪個影子寄存器由該異常的執行模式而定;另外R14影子寄存器的值同異常類型相關。比如Data Abort異常,對應的影子寄存器就是Abort模式的影子寄存器R14_abt,R14_abt的值為異常產生時PC值 + 8。 (2) 將CPSR保存到CPSR的某個影子寄存器SPSR中,同樣,具體選擇哪個影子寄存器由該異常的執行模式而定。 (3) 執行對因的中斷向量 退出過程由操作系統自己負責,只要確保退出后的PC和CPSR同進入之前是一樣就可以了。有時候操作系統在處理某種特定情況的異常后會將退出后PC值變為進入前PC值 + 4(即下一條指令地址),這僅僅是一個提醒,其目的是說明退出過程是完全由軟件自己決定的。]]>
主站蜘蛛池模板: 国产亚洲漂亮白嫩美女在线| 日本a级视频在线播放| 国产XXXX99真实实拍| 8888四色奇米在线观看免费看| 恋脚app直播软件| 亚洲av无码一区二区三区dv| 正文农村老少伦小说| 国产ts亚洲人妖| 麻豆安全免费网址入口| 在线麻豆国产传媒60在线观看| 久久久久久久99精品免费观看| 日韩黄色一级大片| 亚洲精品无码久久久久| 精品久久8X国产免费观看| 国产女同疯狂摩擦系列1| 97久久国产亚洲精品超碰热| 妞干网手机免费视频| 久久精品国产亚洲AV麻豆~| 欧美人与动人物xxxx| 免费精品99久久国产综合精品| 色综合合久久天天综合绕视看| 国产精品无码免费视频二三区| 与子乱勾搭对白在线观看| 日本a级视频在线播放| 亚洲人成在线播放网站| 欧美裸体xxxx极品少妇| 双性h啪啪樱桃动漫直接观看 | 欧美在线视频导航| 公粗一晚六次挺进我密道视频 | 亚洲色大成网站www永久| 精品国产一区在线观看| 国产女人aaa级久久久级| 冬月枫在线观看| 一本一本久久aa综合精品| 成视频年人黄网站免费视频 | 99在线精品免费视频九九视| 最新中文字幕在线资源| 人妻少妇精品中文字幕AV蜜桃| 精品亚洲A∨无码一区二区三区| 国产卡一卡二贰佰| 1000又爽又黄禁片在线久|