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进行设置。

最后,则是加入了转换芯片之后的完整结构图: