Wednesday, October 23, 2013

硬體製造測試流程

 

ATE(Auto Test Equipments), known as Device Under Test(DUT), Unit Under Test(UUT)

分兩個階段

  1. die
  2. package

System Level Test(SLT)

 

Reference

http://en.wikipedia.org/wiki/Automatic_test_equipment

http://en.wikipedia.org/wiki/System_testing

音響測試

white noise

雜音涵蓋全頻域猶如白色一樣。

pink noise

白色+紅色 = 粉紅

紅色頻率 = 電器產品

Reference:

http://en.wikipedia.org/wiki/Pink_noise

Tuesday, October 22, 2013

Bluetooth for Car Stereo of vw polo

最近想要用手機與自己的愛車VW polo的原廠音響做連線,看看可不可以免持聽筒或是音樂的傳播,但聽到只出張嘴巴的sales說原配沒有這樣的支援,除非要貼錢換更好的台製音響才能有這樣的功能。

於是就開始了一連串的研究,首先,如果有跟我一樣是VW的車主,可以參考下面的網址。

http://my.vw.com/2013-passat/technology/bluetooth-faqs

簡單來說,把音響打開,bluetooth也打開搜尋連線,應該會有類似的裝置名稱(EL-540-CON2)跑出,應該每台車子有不同的名稱,接下來把密碼"0000"打進去。就OK了~~只是第一次連線會比較久一點,設定好之後就可以使用免持聽筒的功能囉。

這時候,大家一定在想如果可以使用免持聽通那是不是就可以傳音樂了呢?

答案是可能要看音響的規格,依我的來說只有支援Hands-Free Profile (HFP)。

所以說並沒有正規的方式傳遞音樂,如果硬是要傳也是可以,但音質就大大折扣。

如果有支援Advanced Audio Distribution Profile (A2DP)那就可聽比較好的音樂囉。

至於,Audio/Video Remote Control Profile (AVRCP)是用來控制設備的協定。

因為我是用iphone的手機,所以要找到用來破壞協定方式傳定音樂的相關軟體,難呀。

有也是要付費

A2DPblocker

或是破解手機,

Bluetooth Mono SBSettings Toggle

但其他系統的APP應該就比較容易些。

這邊有兩個軟體給各位參考一下。

BTMono

BTHeadSet

Reference

http://en.wikipedia.org/wiki/Bluetooth_profile

Number Representing

Fix-point arithmetic

Floating point unit(FPU)

    • Formant
      1. sign
      2. mantissa
      3. exponent
    • IEEE754

Reference

http://en.wikipedia.org/wiki/Fixed-point_arithmetic

http://en.wikipedia.org/wiki/Floating_point

Monday, October 21, 2013

Data Segment

 

The computer program memory is organized into the following:

  1. Data Segment (Data + BSS + Heap)
    1. data
      • global, static variable had initialized
      • read-write area
      • read-only area for const (.rodata)
    2. BBS
      • uninitialized data
    3. Heap
      • malloc
  2. Stack
    • call function
  3. Code segment

 

Reference:

http://en.wikipedia.org/wiki/Data_segment

Friday, May 17, 2013

UEFI – Phrase SEC

 

SEC是UEFI最早啟動的階段,也就是當按下Power-on後的第一件工作,

其中有三個主要的工作,分別為

1)與其他硬體確認開機BIOS的安全性,Core Root of Trust Module(CRTM)。

這必須要透過第三方硬體支援來確認BIOS本身的安全性,接者BIOS本身還會有機制繼續驗證下去,就有如一環接者一環,chain of trust。

2)決定CPU Operation Mode。

CPU因為相容性的問題,都會先用16bit width做處理,此階段可以先將16bit轉換成可支援的32bit, 64bit…,來提升開機速度。

3)暫時記憶體的設立。

在這項工作中,SEC會找尋適合的記憶體,來取代位於南僑所控制的ROM記憶體,來增加執行速度。因此,會利用SRAM, CPU Cache等等來載入初始的BFV,其容量都必須大於4KB<1><2>。

Reference

<1>http://www.techbang.com/posts/4359

<2>http://en.wikipedia.org/wiki/Real_mode

Thursday, May 9, 2013

State Machine ? Function Point !!!

不管中文或是英文都有很多文章在介紹這兩個理論的概念,在這裡是想用這兩種概念將程式寫的更容易維護和設計。

State Machine(SM)第一次看到這個名詞是我在研讀HMM的時後(有機會將這有趣的數學分享給大家),簡單來說就是狀態之間的轉移,數學上是以"機率"作為轉移依據,而在程式上是以"條件式"來決定。條件式在C語言裡不外乎使用 if / switch,

先來簡單的狀態序列<2>,配上常見的寫法我想會是~~

image

if (S=1) S = 2; do event S1

elseif (S=2) x = 3; do evnet S2

elseif (S=3) do event S3

或是用switch case…,想要讓狀態機多活一下,很直覺得就給它加個do while。這樣就大功告成了!?

小小狀態機或許這樣應該足夠了,但現在隨著硬體技術隨著<1>Moore定律的規範下不斷進步,其實軟體這裡也不會閒著,狀態機也是龐大的可怕,那這樣的寫法好maintain嗎? 我想這部分可以等到各位在工作時可以驗證一下,這裡是討論程式概念。

要怎麼做才直接且容易維護呢? 首先我們仔細想想,上述概念的寫法應該是這樣的SM。

image

首先,我想引用<3><4>來解釋SM table的設計,這方法可以用來紀錄下一個狀態位置。

CurrentState = SMTable[CurrentState ] ;

很好,有了這個機制我們的架構就變成這樣了!

image

這是俗稱的多此一舉,脫褲子放屁? 問題出在哪呢? 因為每個狀態有屬於自己的函式要處理,如果能跟著CurrentState這index改變,那就兩全其美了。所以就有function point<5-7>存在的必要性。

此外,要寫好貼切的function point,我想宣告的問題可是非常重要,如#define, typedef, 宣告型態<8>...

這是我簡單寫一個上面所形容的狀態機(source code)分享給各位,希望能讓各位產生一絲絲的共鳴。

<Reference>

<1>http://en.wikipedia.org/wiki/Moore's_law

<2>http://www.swarthmore.edu/NatSci/echeeve1/Class/e15/E15Lab2/CStateMachines/CStateMachines.html

<3>http://www.conman.org/projects/essays/states.html

<4>http://johnsantic.com/comp/state.html

<5>http://stackoverflow.com/questions/1591361/understanding-typedefs-for-function-pointers-in-c-examples-hints-and-tips-ple

<6>http://stackoverflow.com/questions/133214/is-there-a-typical-state-machine-implementation-pattern

<7>http://www.newty.de/fpt/intro.html#what

<8>http://www.devx.com/tips/Tip/13829

Register Transfer Level Design with Verilog (1) [ebook]

設計程式之所以有趣不外乎是它的千變萬化,同樣的結果卻有不同的寫法。 但這些不同寫法當中也並沒有分誰對誰錯,也沒有制定標準來規範何事該用何解。 這也就是我們設計者的珍貴!! [1] Primitive Instantiations 在Verilog中最基本的邏輯...