|||
要说S3C2410其内部资源的确比较丰富。其中包括的大部分资源,单片机也有,比如UART串口,SPI,IIC总线以及Watchdog等,另外,该片ARM还集成了USB接口,包括两个USB HOST和一个USB Device,还有LCD控制引脚、IIS总线接口以及SD卡控制引脚。当然,若要集成这么多的内设,必定要付出一定的开销,这直接表现在其引脚上,这块片子有272个引脚!Oh My God,从没见过一个指甲大小的芯片上居然有这么多引脚。所以这就决定了这个芯片只能采用BGA封装,进而导致PCB的困难加大。普通的双层板根本不可能把其引脚都引出来,必须多层板才行,而采用了多层板以后,必然也导致了其制板打样的经济型陡增,这也是这次实验不能够最终付诸实际的最直接的原因之一。
这里首先先谈谈USB接口情况,上面已经指出,该片子有三个USB接口(一个USB Device,两个USB Host),但细心的人会发现,其实只有两个USB接口可以引出来。这是因为其中一个USB Host与那个USB Device的引脚是复用的!这里回到USB上来,记得大学的时候,有老师上课曾今问过,为什么USB通信的速度可以做的非常快?要知道USB虽然也有四条线,但其中一个是5V电源,一条是GND,只有两条线实际通信的。当时的确答不上来,后来才知道,USB协议中采用了同步时钟的一个技术。到目前为止,我还不知道这个同步时钟是如何发挥作用的,只是知道一个名词而已,但我想作为一个以应用为目的的人而言,这个真的是我无需多多过问的,不管将来会出现什么USB3.0还是4.0、5.0之类的,我以为,会用便可,无需知道其内部原理(貌似废话比较多)。刚才提到,一个USB Host 与USB Device是复用的,但这两者的内部连线稍有不同。在我的系统中,我是引出了一个USB Host和一个USB Device。这里Host与Device的作用是不言而明的,其实,我觉得作为Device的情况不多,倒是作为Host的情况比较多,比如接键盘、鼠标、摄像头、无线网卡什么的;而作为Device的主要用途,举个例子,比如设计一个mp3播放器,需要与电脑连接下载数据,这是这个USB接口便是一个Device接口。其实,我引出一个USB Host和USB Device也是有考虑的,因为如果USB Host接口不够用的话可以利用HUB什么的扩展,而Device貌似就不行,不过Device接口只需一个便可。此处,对于USB接口的形式倒是比较固定,也没有什么技术可言,如下图所示:
再谈谈UART,其实,串口而言,现在应该是用的比较少,其速度的确有点慢,但是实现起来比较简单,同时在移植软件的时候用它会比较方便,所以还是需要一用的。S3C2410提供了3个UART接口,这三个之和普通的IO口复用,所以可以全部引出来。但有一个问题是:S3C2410使用的供电是3.3V的而UART使用的是典型的RS232电平(即5V),这就需要一个电平转换电路,最常见的是MAX232芯片,这也是最合适的芯片。不妨想想,为了接一个UART,还需呀外接电平转换电路,这似乎有点不划算,想到前期一个项目情况,还不如接一个USB-to-UART的芯片,电路的复杂程度基本没变,可能芯片会稍微贵点,但没关系,关键在于后期比较简单。有了这种芯片以后呢,以后只要在PC上安装一个驱动就可以模拟一个串口出来,这样,只要有USB的PC都可以实现串口通信了,何乐而不为呢?此处选择的是PL2303HX作为这款转换芯片,具体的电路图如下所示:
至此,这款ARM的系统便基本设计完成了。其实我为了后期功能很好的扩展,还把CLKOUT的四路引脚引出来了,作为以后产生PWM之用;另外还引出了两路SPI,其中一路是接我以前项目的nRF2401射频芯片,用于后期做无线数据收发;还引出了一路IIC总线,引出了LCD接口,引出了SD卡接口电路,引出了一路UART。这些都是考虑到以后扩展功能而用的,并没有什么特殊用途。