ARM和X86雙架構並存的設計概念

//=====================================================================
//TITLE:
// ARM和X86雙架構並存的設計概念
//AUTHOR:
// norains
//DATE:
// February 14-September-2010
//Environment:
// NULL
//=====================================================================

客戶的要求總是千奇百怪的,這不,就有客戶要求在ARM板子加上X86,理由很簡單:產品要能夠玩即將面世的仙劍4!OK,現在我們不去討論客戶的需求是否合理,既然他們能提出這個要求,也就意味着他們有一定的市場。對於市場,一流的程序員一定會比二流的業務員要強麼?我想應該不一定吧?所以,我們還是想想如何將這需求轉變爲實際的產品吧。

首先我們看看一個比較流行的車載系統的基礎構成,如圖所示:


當然,車載系統的設計方式多種多樣,上面所說的這個並不是最好的,但用來說明架構,卻也聊勝於無了。架構很簡單,ARM是主要是跑WinCE的操作系統,輸入設備爲觸摸屏,輸出設備則是LCD。如果需要控制外圍器件,比如說CAN總線,收音機等等,ARM就需要和MCU通信,發指令給MCU,讓其根據相應的指令去控制。

如果在此基礎上增加一個X86,那麼架構就會轉變爲如此:


和MCU的溝通還容易解決,因爲一般來說,溝通無非是通過串口,而MCU的串口一般不止一個,所以這也只是簡單的再用另一個串口和X86進行通信即可。難點就在於LCD和觸摸屏,到本文爲止,我還沒見過能夠接收兩路輸入的觸摸屏和LCD,所以根本就沒有辦法直接將ARM和X86的信號直接連接到LCD或觸摸屏。並且,LCD和觸摸屏也必須是能夠同時切換的,比如說,當前LCD顯示的是ARM送過來的數據,那麼接收觸摸屏數據的就必須是ARM。反之,對於X86也是如此。那麼,這觸摸屏和LCD該如何對付呢?

首先看觸摸屏。觸摸屏一般分爲四根線,分別是X+,X-,Y+和Y-,我們需要將這四個信號能夠通過設置達到在某一段時間內控制信號是輸送給ARM還是X86。這個用基礎的元器件搭建自然能夠實現,不過佔用的面積就會大一些,所以還是選擇SGM44599芯片來進行轉換。

我們先來看看SGM44599的原理圖:


其實SGM44599的功能很簡單,信號從COM1進入,能夠從NC1或NO1輸出,同樣對於通道2~4也是如此。至於是從NC,還是從NO輸出,主要是看IN1-2和IN3-4的控制電平。電平和相應的通道功能如下圖所示:


觸摸屏解決了,那麼剩下的就是LCD。和觸摸屏有所不同,我們可以認爲觸摸屏是一進二出,而LCD則是二進一出。不過這也沒什麼關係,我們還是有芯片可以選擇的。視頻轉換芯片市面上實在太多了,隨手一抓一大把,所以這裏這裏只是挑其中的一種來進行說明。這回的主角是T107BL。

先來看看T107BL的大致功能,如圖所示:


從圖中可以看出,T107BL能夠將一大堆雜七雜八的視頻信號,轉變爲LCD所需要的RGB565信號。ARM和X86都能夠輸出RGB565,而T107BL恰好又支持RGB565的輸入,所以視頻信號的切換方面,採用T107BL是再好不過了。至於是輸出哪個信號源,則可以讓MCU通過I2C來對T107BL進行設置。

最後,則是加入了轉換芯片之後的完整結構圖: