从GBA开始,步入ARM开发的殿堂(硬件篇~数据线)
日期:2004-3-18
1.写在前面的话
初学者入门篇里介绍了学习嵌入开发的基本软、硬件环境以及相关的使用方法,从反馈的情况来看该篇文章确实吸引了不少读者。但是,也有些读者也提出了异议,他们疑问:
1.在GBA上进行开发就意味着是嵌入式开发,未免太狭隘了吧!?
2.ARM开发板也有很便宜的,而且用起来更专业,为什么要用GBA呢?
3.GBA的主频太低,内存太小,在上面移植、开发操作系统困难太大,不适合作为ARM的入门平台。
在继续下面的主题《硬件篇~数据线》之前,有必要对上面的疑问做出解释,再次阐述之所以使用GBA作为ARM入门平台的原因,明确本系列文章的读者对象群。
1.从功能上来看,GBA包括声效处理,彩色LCD显示,以及输入输出等功能;从使用者的角度来看,GBA涉及人的手,眼,耳等感觉器官;从开发者角度看,它是完整的嵌入式系统。
2.本系列文章的读者对象是:
A).对硬件一窍不通的纯软件开发人员。(IT行业中大部分研发人员都属于这支队伍,包括许多即将步入此行业的毕业生或立志于IT事业的有志者)。
B).对硬件稍微有些了解,但是对于硬件设计、调试极为头痛,却又想学习嵌入式开发的读者。
C).急于迈过硬件这道门槛,尽快熟悉ARM体系结构的软件高手。
通过对目标读者群的划分,就应该知道为什么对上述入门者要推荐GBA这个平台,而不采用专业的ARM开发板。因为,"专业"一词本身就意味着进入门槛高,学习难度大。当然,专门做硬件开发,或者对硬件比较熟悉,经验较为丰富的开发者则另当别论,暂不在此讨论之列。
至于,有些读者认为在GBA上移植、开发操作系统难度大,认为不应当使用ARM作为入门平台。对于想入门的绝大部分读者来说,刚接触硬件就要研究、开发操作系统,这恐怕不太现实,同时也违反了由简到难这一循序渐进的学习过程。
综上所述,本系列文章的主要关键词是"入门"。
接下来就言规正传,开始这一次的主题《硬件篇~数据线》,在这里将教你如何连接制作一条数据线(侧重于电路连接,需要一定的电路知识),此条DIY的数据线最高传输速率约为100KB/s,录制64Mbits可擦写卡时间约1分钟22秒,支持各种兼容卡带。
2.关于数据线
众所周知,电脑已经步入我们的生活,正逐渐成为这个时代的必需品。我们大部分工作都要使用电脑,至于嵌入式开发那就更不用说了。如何将你的工作成果放到GBA上检验呢?在电脑上用软件模拟?可以,但是并不能完全模拟出硬件的真实环境,还是需要到真正的硬件环境上运行测试。
在这个过程中,数据线就派上用场了,可以将工作成果下载到GBA的存储单元中,可以实现PC<-->GBA的双向数据交换,当然也可以实现远程调试。
有人会疑惑,数据线的效用大家都清楚,是用来交换数据的,那么实现原理呢?为什么数据线能实现交换,这种数据线跟手机以及其他电脑外设的数据线差别在哪里呢?
我们都知道,大多数的电子设备一般都会提供电气接口,用于交换数据。但是不同的电子设备的接口之间的电气参数一般是不相同的,因此数据线就应运而生,成为适应双方电气参数,传输协议的物理通道,简而言之就是一种接口转换工具。对于我们要使用的GBA来说,PC与GBA之间可以有不同的方式进行连接。GBA只有一个串行传输口(SIO),而PC则拥有类型不同的接口(并口、串口、USB、1394等等),GBA-PC之间是一对多的关系,我们可以按照需要设计并实现不同电气接口的数据线。例如:SIO-并口,SIO-串口,SIO-USB,SIO-1394等等。设计时可以依据数据传输率,经济性等参考因素。其中SIO-串口最为简单,但是速度也最慢,国外已经有人介绍过此类数据线的原理。而SIO-USB和SIO-1394技术又较为复杂,因此在这里仅介绍SIO-并口数据线的原理以及实现。
3.自己动手DIY GBALine数据线
在介绍SIO-并口数据线之前不得不提到GBALine,因为下面将以GBALine作为参考对象。
GBALine是SIO-并口结构的数据线,目前2.0版本的传输率达到了150KB/s,1.0版本的也有115KB/s,是真正意义上的高速数据线。
下面是GBALine的原理、接线图:
说明如下:
本电路采用的是ATMEL公司的AT90S1200-12芯片,整个电路是由GBA供电。电脑端为DB25接头,GBA端为SIO接头。其中,GBA的SIO接头如下图所示:
连线时引脚对应关系为:
1.GBA-SIO端口与AT90S1200-12芯片的引脚关系为:
SIO 1-6脚分别对应AT90S1200-12的20、2、3、6、7、10脚。
2.DB25接头与AT90S1200-12芯片的引脚关系为:
DB25 16、17、11、15、13、12、10、2、3、4、5共11条引脚对应AT90S1200-12的8、9、11、12、13、14、15、16、17、18、19引脚。
3. XTAL2-XTAL1接晶振的两脚,不分方向。
(发光二极管串连一个电阻之后连接在DB25的第9脚,用于显示电路是否通电,此部分是可选部件一般不需要)
4.关于数据线的软件
因为此篇文章是侧重于电路连接,因此暂时不对电路实现原理以及软件部分做详细讲解。
AT90S1200-12的firmware将会预先录制在芯片中,PC端的软件则使用Vigor Studio,此条DIY的数据线最高传输速率约为100KB/s,可以对GBALine可擦写卡进行读写,同时也兼容自行改制的可擦写卡。
5. 实物参考图片
6. DIY组件的提供
为了便于读者DIY数据线,我们将提供整套散件,不含万用板PCB,可以在当地买到,或者不用PCB,导线可以直接焊在IC上。
1. DB25接头(LPT头)、外壳
2. GBA-SIO线
3. AT90S1200-12芯片(含预先录制的程序)
4. 相关电容、电阻、晶振
5. 配套Vigor Studio软件(请到http://www.gbaline.com/自行下载)
整套DIY散件售价28元整。(可选64Mbits GBALine可擦写卡,该卡单价40元整),DIY活动只提供邮购服务。