具OSC的FreeRTOS運行在晶心平台

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "具OSC的FreeRTOS運行在晶心平台"

Transcription

1 晶心科技技術文章 Andes D1088 在汽車 ADAS 之應用. 晶 心 科 技 新 聞 聯 絡 人 市場與技術服務部 Hsiao-Ling 林筱瓴電話 : ext Web:

2 Andes D1088 在汽車 ADAS 之應用 沈智明, 資深經理, 晶心科技股份有限公司 先進駕駛輔助系統 (Advanced Driver Assistance Systems;ADAS) 為現今 IT 產業發展之重要方向, 是將來可以達到無人駕駛智慧車輛的技術進階過程 ADAS 的主要功能並不是控制汽車, 而是為駕駛人提供車內的工作情況與車外環境變化等相關資訊進行分析, 提供預先警告可能的危險狀況, 讓駕駛人提早採取因應措施, 避免交通意外發生 晶心科技的產品 D1088 具數位信號處理器 (digital signal processor,dsp) 指令, 除了一般 CPU 指令外還多了 SIMD instructions 來加速 ADAS 系統的演算, 增加 ADAS 產品之性能, 也因此獲得客戶的認同使用晶心科技 D1088 開發 ADAS 產品 使用 D1088 開發的 ADAS 產品包括盲點偵測 (Blind-Spot Detection, BSD), 前車碰撞警示 (Forward-Collision Warning, FCW), 車道偏移警示 (Lane-Departure Warning, LDW), 移動物偵測 (Motion-Object Detection, MOD), 倒車碰撞警示 (Rear-Collision Warning, RCW), 行人碰撞警示 (Pedestrian-Collision Warning, PCW) 及行車紀錄器 車用電子須通過 AEC-Q100(Automotive Electronics Council - Failure Mechanism Based Stress Test Qualification For Integrated Circuits) 的認證, 要求有別於一般消費性電子產品, 本文之目的除了告訴我們的客戶 (IC 設計業者 )D1088 的優勢, 也與我們的客戶一起探討車用電子與消費性電子產品間差異 希望在車用電子領域, 晶心科技與我們的客戶攜手同行從今日開發 ADAS 晶片到未來的無人車自動駕駛 Andes Technology Corp. Page: 2 of 11

3 1. D1088 應用於 ADAS 的優勢 生活環境中都是類比訊號, 聲音是類比訊號, 影像是類比訊號, 汽車碰撞的壓力值還是類比訊號, 汽車在行進中, 感知器將量測數值傳送進 ADAS 控制器, 經過 ADC 轉換後得到數位訊號,車內外環境中充滿了干擾與雜訊, 濾波器可以濾掉雜訊與干擾, 大大提升訊號正確性與可靠度, 還原事物的原貌 文中以數位濾波器 FIR (Finite Impulse Response) 為例, 比較使用一般 CPU 指令與 D1088 提供的 DSP 指令在實踐 FIR 時的差異, 說明 D1088 的優勢與特性 1.1 使用 Fir_q15 函數驗證 以 ADAS 中車道偏移警示系統會用到的 FIR 數位濾波器, 使用 Fir_q15[1] 函數 C 語言實作如下所示 : void nds32_fir_q15(const nds32_fir_q15_t *instance,q15_t *src, q15_t *dst, uint32_t size) 此 FIR 數位濾波器函數, 其中函數的引數 :*instance 此是指向 FIR 結構的指標, 數位濾波器參數特性定義在此 輸入 *src 與輸出 *dst 是以 Q15 的資料格式來呈現,size 是此函數一次處理的取樣數目, 本實驗的取樣數目是 1024 在使用此函數時, 設計兩種定義, 一種是全部使用 Andes baseline 指令, 另一種使用 DSP 指令,D1088 除了具備一般 CPU 功能外, 增加超過 130 DSP 相關指令 在此函數中除了運用 DSP Q 指令外也使用了 DSP 中的 saturation 運算, 當數位訊號運算後產生 overflow 或 underflow 時, 沒有使用 saturation 運算會產生錯誤且離譜的結果,Andes saturation 指令可以大大提升效能 在 Fir_q15 函數在 D1088 上做驗證函數的取樣數目為 1024, 在全部使用 baseline 指令運算所得的 cycle 數除以取樣數目 1024 得到每一筆 DSP 訊號所需要的 cycle 數是 210, 如果使用 DSP 指令, 處理每一筆 DSP 指令只需要的是 41 cycles 從 Fir_q15 函數運算結果得知 DSP 指令對比 baseline 指令運算效能提升 5.12 倍 Andes Technology Corp. Page: 3 of 11

4 1.2 DSP Benchmark 數值 下圖 [2] 是依各類測試群組得到 D1088 與 Baseline CPU 的 benchmark 數 據, 總體 benchmark 的平均值 D1088/N1068 有 64% 的性能提升 : 300% Performance: DSP/Baseline, by Test Groups 250% 200% 150% 100% 50% 0% 圖 1. DSP Library 效能圖 Andes Technology Corp. Page: 4 of 11

5 2. 車用電子產品需要通過之認證 近幾年隨著汽車市場逐步走向車聯網 電動車領域, 需要更多駕駛資訊輔助整合系統, 也讓 IC 設計業者找到一個好的發展方向與新的產品市場 很明顯, 車用電子要求有別於一般消費性產品, 分別在產品的壽命, 溫度的範圍, 可靠度等級與安全性的要求等皆遠高於消費性電子產品, 車用電子需要經過 ISO 與 AEC-Q100 認證 晶心科技是 CPU IP 的供應商, 提供 CPU IP 給 IC 設計業者 從 AEC-Q100 的驗證流程中, 了解 IC 設計業在車用電子所在的角色, 也可以得知 CPU 與 IC 設計業者在車用電子中的位置與關係 2.1 車用 IC 規範 AEC-Q100 驗證流程 圖 2 為 AEC-Q100 規範中的驗證流程 [3], 此圖是以 Die Design Wafer Fab. PKG Assembly Testing 的製造流程來繪製, 各群組的關聯性須要參考圖中的箭頭符號, 本文重點著重在 IC 設計業者 (Design House), 所以僅標示 AEC-Q100 中 Design House 與 Design Verification 相關測試項目 圖 2. AEC-Q100 驗證流程 Andes Technology Corp. Page: 5 of 11

6 2.2 IC 設計業者進行 AEC-Q100 驗證 在 AEC-Q100 建議中,IC 設計業者需要依據 IC 晶片在汽車中使用位置區分為 引擎區與乘坐區兩部份, 其基本工作環境要求不同, 故對於測試溫度, 可靠度, 安全性的建議規格也不同 由於 IC 晶片種類繁多, 因此在試驗條件上,AEC-Q100 已進行分門別類, 亦即依照屬性設定建議的試驗條件, 當 IC 晶片設計測試規範訂 定後依據圖 2 AEC-Q100 驗證流程圖,IC 設計業者需完成紅框的驗證項目, 當 Wafer Foundry 也通過需做測項後,AEC-Q100 驗證項目皆完成後, 就可說此 IC 晶 片完成 AEC-Q100 的驗證 Andes Technology Corp. Page: 6 of 11

7 3. 車用電子產品需要通過之認證 除了 ADAS 本身須具備之功能與通過 AEC-Q100 認證外, 也需有額外設計才能符合在汽車的應用環境下的需求, 下列幾個實例說明在車用 ADAS 中增加的設計, 有別於一般消費性電子產品 3.1 CRC checksum 安全驗證 在車用 ADAS 設計實例中, 考慮到汽車環境中干擾嚴重且需要高可靠度 ADAS 程式在燒錄進 ADAS 產品的 NOR-Flash 時, 將欲燒錄程式經由 CRC32-CCIR 演算後得到 32bits 結果一併寫在 NOR-Flash 上 在車上當 ADAS 產品開機後,NOR-Flash 上的程式搬到 RAM 後, 在 RAM 的程式也一樣經過 CRC32-CCIR 演算後得到的結果與程式後面 32bit checksum 演算結果做比對, 如果 RAM 端與 NOR-Flash 數值一致表示通過 CRC checksum 安全驗證, 如果數值不一致代表 RAM 上的程式在過程中被干擾須採取對應的措施 增加 CRC checksum 安全驗證可以知道車用 ADAS 對安全與可靠度要求遠高於一般消費性電子產品 3.2 程式啟動前先行驗證 CPU 周邊 有別於一般消費性產品, 車用電子產品在程式啟動前需驗證 CPU 周邊 device 本身之正確性, 以 ADAS 實例來說明需要驗證 cache 與 RAM 在 ADAS 程式執行前, 提供晶心科技自訂指令集 CCTL (Cache Control) 指令做 cache 的驗證 將 CCTL 指令以 intrinsic 函數方式 ( 如下所示 )[4] 提供給客戶使用 : Unsigned int nds32 cctlidx_read (const enum nds32_cctl_idxread subtype, unsigned int idx) void nds32 cctlidx_write (const enum nds32_cctl_idxwrite subtype, unsigned int b, unsigned int idxw) 開發 ADAS 客戶使用晶心科技提供 nds32 cctlidx_write 函數寫入再 用 nds32 cctlidx_read 函數讀出來驗證整個 cache device RAM 在使用前也需要做 RAM device 的驗證, 進行 RAM device 驗證需要 Andes Technology Corp. Page: 7 of 11

8 驗證程式結合 RAM 測試 pattern 晶心科技使用程式編寫的技巧提供 ADAS 開 發業者不需要用到 RAM 的驗證程式結合 ADAS 開發業者使用 March C Algorithm 做為的 RAM device 的驗證 pattern 在 ADAS 開機時使用 March C Algorithm 來做 RAM 的 BIST 好處是快速, 產品開機時所需的等待時間對於車用產品極為重要, 也是車用產品優劣的重要評判準則,March C Algorithm 除了簡單快速外, 還有 fault coverage 高的特性 受到廣泛的應用, 將 March C Algorithm 的 pseudo code 詳列如下 [5]: //for writing 0s in block 1 and writing 1s in block 2, let n and m are rows and columns for(i=0;i<(n-1)/2;i=i+1) for(j=0;j<(m-1);j=j+1) mem[i][j]=0; //write 0 in m1 for(i=(n-1)/2;i<(n-1);i=i+1) for(j=0;j<(m-1);j=j+1) mem[i][j]=1; //write 1 in m2 //for reading background and for writing alternate for(i=0;i<(n-1)/2;i=i+1) for(j=0;j<(m-1);j=j+1) if(mem[i][j]==0) mem[i][j]=1; else return; for(i=(n-1)/2;i<(n-1);i=i+1) for(j=0;j<(m-1);j=j+1) if(mem[i][j]==1) mem[i][j]=0; Andes Technology Corp. Page: 8 of 11

9 else return; Andes Technology Corp. Page: 9 of 11

10 4. 結語 D1088 具 DSP 指令適合應用在於先進駕駛輔助系統 晶心科技提供高效能符合車用的 CPU 給 IC 設計業者, 在 IC 設計業者開發車用 ADAS 產品時, 晶心科技提供適當的支援協助 IC 設計業者開發具競爭力且符合車規之 ADAS 晶片與系統, 衷心感謝偉詮公司顧朝奇博士與陳文慶先生的協助, 才能完成此技術文章 電子產業各項領域中, 不論是 MCU, 觸控周邊,IoT 與本文探討之車用 ADAS, 晶心科技皆已取得不錯的成效, 也期望在未來趨勢 ADAS 與車聯網產業中晶心科技與我們的客戶 IC 設計業者緊密的合作, 開發出具競爭力的晶片與系統, 達到雙贏的目的 參考文件 [1] Andes Fir_q15 Program nds32_fir_q15.c [2] Andes Company Profile July 2016 page 28 [3] 新通訊 2016 年 4 月號 182 期 技術前瞻 [4] Andes Programming Guide for ISA-V3 page 104 [5] Muddapu Parvathi, N. Vasantha, K. Satya Parasad, Modified March C - Algorithm for Embedded Memory Testing International Journal of Electrical and Computer Engineering (IJECE) Vol. 2, No.5, October 2012, pp. 571~576 ISSN: Andes Technology Corp. Page: 10 of 11

11 關 於 晶 心 為因應全球嵌入式系統應用的快速成長,2005 年晶心科技創立於新竹科學園區, 致力於開發以 32 位元處理器為核心的系統晶片設計平台 (Processor-based SoC Platforms) 晶心科技是一家國際化結合軟硬體平台及系統整合能力且專注於系統晶片核心開發的公司 隨著電子產業產品日趨多功能化, 更多廠商開始對處理器及設計平台要求更佳的整合性 延展性 設計彈性, 以及高效能 低成本與低功率 這樣的複雜度已經超越傳統供應廠商所能提供的解決方案 晶心科技以創新的彈性配置平台 (Configurable Platforms), 搭配獨特的軟硬體智財, 來滿足未來客戶對產品高品質及快速上市的需求 晶心在自有 CPU 架構下經過幾年研發及市場的耕耘, 目前的 V3 CPU 家族包括 N7 N8 E8 S8 N9 N10 D10 和 N13 系列都已成熟到位, 滿足客戶各種應用面的全方位需求 關於晶心科技提供之 32 位元 CPU IP, 歡迎請參閱晶心科技網站 : 新 聞 聯 絡 人 市場與技術服務部 Hsiao-Ling 林筱瓴電話 : ext Web: Andes Technology Corp. Page: 11 of 11