
北京谈球吧论坛科技有限公司
谘詢熱線:010-82488292
公司電話:010-82488292
公司傳真:010-82611646
企業郵箱:sales@changyinwuye.com
地址:北京市海澱區中關村大街19號 新中關大廈B座南翼15層1507室
BB-Black之PRU-ICSS簡析
摘要 : 盡管ARM Cortex-A8內核的性能十分強大,但是Linux的本質決定了對於高速外部硬件的控製可能會不太容易實現。而TI的這款芯片添加了兩個額外的CPU(稱為PRU-ICSS或PRUSSv2,即可編程實時單元和工業用通信子係統,以後簡稱PRU),從而使這個問題得到了改善。這意味著這兩個CPU可以分別運行不同的軟件,以便減輕底層協議在硬件接口和處理上的工作量。
BB-Black之PRU-ICSS簡析
什麽是PRU-ICSS?
Beaglebone Black所使用的TI芯片(XAM3359AZCZ revision 2)包含了一個主處理器和許多其他的模塊,如下圖:
盡管ARM Cortex-A8內核的性能十分強大,但是Linux的本質決定了對於高速外部硬件的控製可能會不太容易實現。而TI的這款芯片添加了兩個額外的CPU(稱為PRU-ICSS或PRUSSv2,即可編程實時單元和工業用通信子係統,以後簡稱PRU),從而使這個問題得到了改善。這意味著這兩個CPU可以分別運行不同的軟件,以便減輕底層協議在硬件接口和處理上的工作量。
這款芯片就好像具有Arduino類似功能的處理器,隻不過其額外的兩個CPU工作頻率要高出許多,達到200MHz,也就是說在許多情況下可以不再需要外部邏輯器件、CPLD或者FPGA。
通常來說,針對一個以上的處理器進行編程是一件麻煩事,而且處理器之前還需要有通信協議。而TI的這款芯片則極大的簡化了這種麻煩,原因有兩點,一是用於PRU的代碼可以從主處理器下載,二是為了方便處理器之間通信,芯片集成了共享存儲器。
PRU的作用體現在哪兒?
對於低速通信來說,傳統的I2C或者常用的協議就已經足夠應付了,因此PRU在這些地方並沒有用武之地。而對於高速通信PRU可能會非常受歡迎,這是因為PRU能夠消除由於Linux環境切換所造成的中斷,從而連續對硬件提供服務,也不會對ARM主處理器造成負擔。這裏有一些常見的並且可行例子;
• 連接到高速ADC(例如模擬信號捕捉)
• CCD 或者CMOS攝像機
• LED或者LCD顯示器
• 生成模擬視頻信號(視頻編碼器)
• 自定義PWM或者其他自定義協議或非標準協議
• 帶反饋的電機控製
據我所知,PRU甚至能夠用某個外部時鍾來作為並行數據的時鍾。
如何使用PRU?
當前來說使用PRU即不簡單也不算困難。主要的難度在於在網上找到完整的實例。這裏提供的內容就是從網上收集而來的。
主要步驟如下:
1. 在BB-Black上使能PRU係統
2. 將PRU匯編程序安裝到BBB上(當前用於PRU的代碼是都是用匯編寫的,還沒有人開發出這對PRU的C編譯器)
3. 編寫代碼。PRU應用程序分為兩部分,而且相互之間能夠通過存儲器尋址來進行通信,即
(a) 匯編代碼,編譯為.bin機器指令文件,以便在PRU上運行
(b) C語言代碼,運行於主處理器上,也就是Linux係統上。這些代碼負責將匯編代碼下載到RPU
4. 配置Linux設置樹,啟用所有引腳用於輸入輸出
5. 運行程序
PRU使用什麽樣的匯編代碼?
還好寄存器數量很給力(都是32位),而且指令都是正交的,另外用於操作的位和字節參考都相當令人滿意,所以相對而言,比起某些常見的匯編語言,例如針對PIC或其他8位處理器的匯編來說,PRU使用的匯編代碼算是比較容易上手的了。匯編命令數量並不多,目前為止我隻使用了大約45條命令中的一小部分,結果還不錯。(通常本人不願意為了某個不太好用的處理器花太多時間學習匯編 – 但RPU完全不同,其指令集貌似很好用的樣子)
PRU是否物有所值?
我覺得答案是肯定的,應為有了PRU就能夠在高速狀態下控製硬件(比如50MHz)。每條指令在PRU上隻需要5納秒的執行時間(200MHz頻率,每條指令占用一個周期),並且不存在由於Linux內核造成的不規則延遲。
難點在哪兒?
難點主要在於和設備樹相關的東西。希望在未來能夠有所變化或者變得更簡單。在一個典型的微控製器上,輸入輸出的設定是用特定的寄存器完成的,這些寄存器存在於某個設備的某一部分存儲映射中。據我所知,當前運行在BB-Black上的軟件不允許用戶通過傳統的C代碼對這些硬件寄存器進行直接的修改操作。當前采用的方法叫做“設備樹”。它是一個文本文件,並且被壓縮成為二進製文件,在係統啟動時需要對其進行讀操作。該文件高速係統哪些是用於輸入輸出的引腳。設備樹的修改也適用於使能RPU係統。
有人曾經通過設備樹關閉了BB-Black上默認閃爍的LED燈。設備樹文件位於BB-Black的/boot目錄下,是一個二進製文件,其內容自然無法看懂(如下圖),通常文件名為.dtb或者.dtbo。
上一篇:AM335X MCASP與 AIC3100調試心得1970-01-01
下一篇:基於半導體激光器驅動電源的嵌入式GUI開發解析1970-01-01
文章推薦
- 智能家居必經之路探討——谈球吧论坛科技
- 物聯網環境下的新零售之戰-谈球吧论坛科技
- 發展農業物聯網 攻關核心技術是關鍵——谈球吧论坛科技
- 應用推廣遭遇三大障礙——谈球吧论坛科技
- 最近的大熱人工智能行業,創業者成功的有多大?-谈球吧论坛科技
- 農業自動化的發展趨勢——谈球吧论坛科技
- 以光子作為存儲單元?這樣的內存有啥優勢
- 物聯網雲智能鎖助力智能家居安全係統——谈球吧论坛科技
- 雲電視或成智能家居普及的突破口——谈球吧论坛科技
- 物聯網將做大智能家居市場蛋糕——谈球吧论坛科技
- 利用現代信息技術改造提升傳統農業——谈球吧论坛科技
- 可穿戴設備將成為遠程醫療的優選終端——谈球吧论坛科技
- 智慧農業--夢想因物聯網技術而變成現實——谈球吧论坛科技
- 農業物聯網技術前景廣闊 農民開始幸福生活——谈球吧论坛科技
- 國內首家“物聯網”農貿市場 ——谈球吧论坛科技
- 物聯網:傳感器改變農業“靠天吃飯”的傳統——谈球吧论坛科技
- 北京今起試點實行路側停車電子收費 有多種支付方式
- 成本過高,農業物聯網難“接地氣”——谈球吧论坛科技
- 淺析醫療物聯網——谈球吧论坛科技
- 物聯網時代,ARM向左和英特爾向右-谈球吧论坛科技
我要評論: | |
*內 容: |
|
驗證碼: |
|
共有0條評論