构造廉价的Arm9 开发平台.docx
- 文档编号:10281095
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:14
- 大小:1.20MB
构造廉价的Arm9 开发平台.docx
《构造廉价的Arm9 开发平台.docx》由会员分享,可在线阅读,更多相关《构造廉价的Arm9 开发平台.docx(14页珍藏版)》请在冰点文库上搜索。
构造廉价的Arm9开发平台
构造廉价的Arm9开发平台
浙江大学城市学院张懿
摘要:
基于Arm9内核的单片机,由于其低廉的价格与优越的性能,已经被广泛的应用于各种消费类电子产品中。
掌握Arm9单片机的开发技能已经成为嵌入式系统开发者的迫切要求。
但由于市面上的Arm9开发板价格不菲,使不少想学习Arm9开发技术的朋友望而却步,其中有一大部分是各大高校的学生。
本文阐述了改造ipTIME的IP0422路由器,使其成为VxWorks和Linux的Arm9开发平台的过程。
整个过程简单易行,同时花费在150元以内,是嵌入式系统开发爱好者不错的选择。
关键字:
VxWorks,Linux,IP0422,Arm9开发板
1改造系统的选取
要动手改造Arm9开发系统,首先要选取一款进行改造的产品。
现在基于Arm9内核的单片机被广泛的应用于家用路由器和手机当中,因而这两类产品可以作为我们寻找改造对象的范围。
但由于手机总体的价格偏高,同时集成度比较高,电路系统复杂,因而不适合作为我们改造的对象。
而路由器恰恰相反,现在100多元的路由器比比皆是,而且这些路由器基本使用单芯片,该芯片除了具有Arm9核心的控制功能外,还具有硬件上的路由算法支持,因而电路相对简单,便于改造,所以廉价的路由器就是改造Arm9开发板的合适对象。
经过反复比较以后,最终选择了ipTIME的IP0422。
该款路由器的市场价格在100元左右,主芯片为KS8695X,是高度集成化的网络通讯处理器,具有ARM922T内核。
同时该路由器还具有2MFlash,8MSDRAM,同时还留有一个SDRAM焊位,可以方便的把SDRAM的容量扩充为16M,为我们运行操作系统提供了足够的空间。
选择该款路由器的另一个主要原因时KS8695X芯片提供了完备的开发资料,可以方便的从Micrel公司的FTP上(ftp:
//)下载获得(文中所涉及到的芯片相关资料都从该FTP下载)。
开发资料中包括了供KS8695XDEMO板运行的Linux操作系统的源代码和VxWorks系统的BSP源代码包,虽然KS8695XDEMO与我们进行改造的路由器的硬件配置不同,但只要做少许移植工作,便可以让以上程序支持我们的开发板,大大简化了我们的改造过程。
IP0422路由器改造完成的电路板和电路板版本号如图1所示。
以下将从硬件改造与软件DEMO移植两方面,详细阐述对IP0422的改造过程。
图1改造完成电路板与电路板版本号
2硬件改造
2.1串口
串口对一个嵌入式系统是致关重要的,通过串口可以与嵌入式系统进行交互。
我们首先进行系统的串口改造。
如图2所示,电路板上原本就将串口以4星条针的形式引出,估计是为了以后方便维修而设置的。
经过分析发现,为了抗干扰,电路板上将主芯片串口的RX管脚进行了上拉,因而在一般使用中主芯片不会接收到任何的输入信号。
所以我们对串口的改造分为两步:
1、去掉RX管脚上的上拉电阻;2、自己搭建一个串口电平转换电路,使串口可以与PC机通信。
串口各管脚定义与要去掉的电阻如图2所示。
图2串口电路
串口电平转换电路负责单片机串口与PC机串口间电平的转换工作,使两者可以正常通信。
串口电平转换电路使用最多的是MAXIM公司的产品,在这里可以使用MAX3232或MAX232,两者连接的电路原理图是相同的。
由于MAX3232是使用3.3V进行供电的,所以可以直接与上图所示的4个管脚进行连接。
若使用MAX232芯片,则要将芯片的供电管脚与电路板上输入电源5V相联。
我使用的是MAX232芯片,5V电源端的连接如图3所示。
MAX232、MAX3232连接原理图如图4所示:
图3MAX2325V连接端
图4MAX232、MAX3232连接原理图
由于以上接口电路比较简单,假如没有现成的串口电路板,可以直接购买面包板,在上面搭建,以后所说的接口电路也可用此方法构建,不再赘述。
将相应的电路连接好后,与PC机的串口相连,打开串口工具DNW(超级终端也可以),设置波特率为38400,数据位为8,奇偶校验为无,停止位为1,硬件流控制为0(后面使用的串口设置只有波特率不同,其他设置都按此设置)。
连接开发板的电源后,可以看到路由器启动时的提示信息,如图5所示,说明串口改造成功。
图5IP0422启动串口输出
2.2JTAG接口
JTAG接口是作为开发板必须具备的。
我们可以通过JTAG接口对板上的程序进行简单的调试,同时,还可以通过JTAG,将程序下载到板上的SDRAM中,对板上的Flash进行擦写操作。
对JTAG的改造要比串口困难,因为电路板上并没有为我们引出该接口,我们只有自己想办法做一个引出接口。
如图6所示,图示位置将电路板的绝缘层用小刀刮掉,露出里面的铜箔,将一个2x10的条形插针一面的9个脚焊在该铜箔上,形成接地,这与我们将要使用的wiggle简易JTAG接口是一致的,同时还可以起到固定整个插座的作用。
条针的2脚与串口接口中的3.3V电源端相连,作为简易JTAG接口的电源脚。
然后将芯片上的与JTAG相关的各个管脚引出。
如图6所示,绿色线一端连条针的第5脚,一端连芯片TDI上拉电阻R27的一端;橙色线一端连条针的第7脚,一端连芯片TMS上接电阻R28的一端;蓝色线一端连条针的第9脚,一端连芯片TCK上拉电阻R29的一端;白线一端连条针的第13脚,一端直接与芯片的TDO(113脚)相连。
其中白色线与芯片的TDO(113脚)相连端是焊接的难点,由于芯片管脚太密,直接焊接很容易照成相邻管脚间的短路,所以建议将该管脚翘起来(如图6所示),然后再焊接,操作时要十分小心。
图6JTAG接口与相应连线
图7简易JTAG接口原理图
接口构造完成后,可以使用wiggle的简易JTAG口与计算机的并口相连。
Wiggle的电路原理图如图7所示。
从
2.3扩充SDRAM
路由板上的SDRAM只有8MB,由于Demo板的SDRAM是16MB,为了方便直接运行Demo板的Linux系统,需要为路由板扩充8MSDRAM。
板上使用的SDRAM型号为IC42S16400-7TG,在市场中并不常见,根据查看该型号SDRAM的规格书,我们选取与其兼容的HY57V641620HG型号的SDRAM。
由于路由板上原来就留有另一片SDRAM的焊接位置,扩充比较容易,只需要在焊接时注意芯片的1脚的位置,不要将芯片焊反了。
SDRAM周围缺少的器件也都要焊上,排阻为33欧姆,电容使用0.1uF。
由于原来路由器中的程序会检测外围SDRAM的数据宽度,进行SDRAM扩充后,原来程序将自动用32位数据宽度进行访问。
所以在扩充SDRAM后,给路由板上电如串口输出正常(如图5所示),则说明扩充成功。
经过以上步骤,路由板的硬件改造已经完成,接下来就是要编写,移植软件,使路由板成为VxWorks与Linux操作系统的开发平台。
3软件编写
3.1Flash烧写软件
由于扩充了JTAG接口,我们可以自己编写一个程序,对板上的Flash进行擦写。
具体原理是在路由板启动后,通过AXD中的命令行,设置KS8695X中的寄存器,将Flash与SDRAM映射到特定的区域,然后将擦写程序下载到SDRAM中运行,对板上的Flash进行编程。
关于这方面文章网上已经有很多,同时还提供有源代码,在此就不再赘述。
这里只把要点说一下。
由于arm9芯片具有MMU单元,默认的路由板上的原始程序是Linux,默认情况下会把MMU单元打开,使用数据缓存,所以我们在AXDCommand窗口中执行内存区域配置时,要先把开着的MMU单元和数据缓存关闭,这样对KS8695寄存器的配置才会正确。
对MMU中寄存器的设置如下图所示:
图8AXD中CP15寄存器的设置
在Command窗口中键入命令obeyC:
\cfg.ini(假定自己编写的配置文件cfg.ini在C盘根目录下),SDRAM被映射到了0x0—0xFFFFFF区域,Flash被映射到了0x2800000—0x29fffff区域。
将Flash烧写程序下到0x0处开始运行,将串口波特率设置为115200,串口输出如图9所示。
按“1”键选择烧写Flash,从DNW的“serialport”菜单中选transmit,然后选择发送要烧录的文件就可以对Flash进行擦写了。
我的路由板上使用的Flash芯片型号为Spansion公司的S29AL016D70,不同型号的Flash,扇区分布与厂家ID可能不同,擦写协议也有可能不同,要对相应部分的程序做适当的修改。
图9Flash擦写程序串口输出
3.2VxWorksBSP包的移植
Demo程序自带VxWorks的BSP包。
根据Demo板的Datasheet[1]和VxWorks说明文档[2]中的说明,我们选择与这块路由板的配置基本相同的KS8695X构建目标进行改造。
经过比较两者最大的差别就是在Flash部分,因而需要改写BSP包中与Flash接口的部分。
其中包括Flash的初始化、擦写逻辑、程序在Flash中的布局,文件系统与Flash的接口等[3]。
涉及到的主要文件与实现的功能如表1所示:
文件名
修改说明
Ks8695p.h、config.h
提供路由板相关寄存器设置值
flashFsLib.c
实现FAT文件系统接口
flashDrvLib.c
实现Flash操作接口
flashAmdMem.h、flashAmdMem.c
具体实现S29AL016D70的各种操作
flashMem.h、flashMem.c
提供程序在Flash中存储的位置和系统记录启动参数的接口
表1BSP修改相关文件说明
将相关文件修改好后,根据BSP说明[2]中的方法编译bootrom,选择的编译目标是KS8695X。
接下来根据说明中的方法编译适用于网络下载的VxWorks映象和适用于Flash引导的VxWorks映象,同样使用的编译目标是KS8695X。
将bootrom下载到路由板上,同时设置好FTP服务器,设置串口波特率为9600,默认情况下bootrom通过FTP从网络上下载引导启动VxWorks映象,启动过程如图10所示。
也可以修改bootrom中的启动参数,从Flash的FAT文件系统中引导启动VxWorks映象,启动过程如图11所示。
经过修改的BSP实现原有BSP的所有功能,各项功能的使用及参数设置参见BSP说明[2],在此不再赘述。
图10网络引导VxWorks输出
图11Flash引导VxWorks输出
3.3u-boot和Linux的移植
开发包中带有供Demo使用的Linux系统,由于Demo板使用的Flash为4M[4],该Linux系统中Linux内核加上文件系统有2M多,路由板上使用的是2M的Flash,而且没有扩充的可能性,显然不能直接使用。
经过对Demo板自带的引导程序的分析,发现Demo板在运行Linux前,引导程序将Linux系统整个拷贝到16M的SDRAM中运行。
我们的路由板已经扩充为16M的SDRAM,所以我们可以不将Linux系统存储在Flash中,而直接使用网络,将Linux系统下载到SDRAM中然后运行。
当然,要将Linux直接下载到SDRAM中运行,还需要有引导程序的帮助。
u-boot是Arm系统中广泛使用的引导程序,同时其中已经有使用KS8695芯片的构建目标,目标的配置名称是cm4008,所以我们选择在原来的构建目标上进行改造,将u-boot移植到我们的路由板上。
关于u-boot的移植的文章网上很多,移植方法在此就不再赘述,涉及到的主要文件与实现的功能如表2所示:
文件名
修改说明
include\configs\cm4008.h
u-boot特定平台的配置文件
include\asm-arm\arch-ks8695\platform.h
硬件平台的参数设置
board\cm4008.c
u-boot初始化设置
board\flash.c
u-boot中flash的接口部分
drivers\ks8695eth.c
u-boot中使用KS8695的驱动
表2Linux修改相关文件说明
需要特别注意的是u-boot中自带的KS8695芯片的网口驱动是使用路由板上的LAN口[5],而不是WLAN口,因而在下载Linux系统时网线应该插在LAN口上。
同时,该驱动程序在复位网口时有个错误,会导致除第一次下载文件正常外,后续的下载文件都发生错误,需要手动修改源文件加以修正。
将串口波特率设置为115200,启动u-boot。
通过设置u-boot环境变量,修改串口波特率为38400,设置路电板的IP地址和PC机端的IP程序。
以及默认的引导参数bootcmd,如图12所示。
图12u-boot默认参数的设置
其中zImage和ramdisk.gz分别是Demo板Linux系统编译所得的Linux内核和文件系统,编译的方法详见开发包中带的Linux说明手册[4],param.bin是由Demo所带的bootloader分析得到的启动参数。
将这些文件通过u-boot的TFTP功能下载到SDRAM中的指定位置,然后运行,串口输出如下图所示:
图13u-boot引导Linux输出
启动过程中会出现Flash设备加载错误,这是由于没有修改Linux中的Flash驱动,由于Flash只是起到保存网页设置的作用,因而不会影响Linux的正常运行,有兴趣的朋友可以自己修改。
启动完成后,访问Linux中的http设置网页如图14所示。
图14Linux设置网页
4结语
本文详细阐述了将IP0422路由器改造为适合于学习VxWorks与Linux操作系统的Arm9平台的过程。
整个过程花费低廉,改造过程简单易行。
同时在改造过程中还可以学到嵌入式系统软件与硬件的多方面知识。
该改造方案是动手能力强,同时又不想花很多钱购买开发板的嵌入式开发爱好者的不错的选择。
参考文献:
1、Micrel.KS8695/KS8695XDemoBoardUser’sGuide.USA:
MicrelCompany,2004
2、Micrel.KS8695-FamilyVxWorksBSPUser’sManual.USA:
MicrelCompany,2004
3、周启平,张杨.VxWorks下设备驱动程序及BSP开发指南.北京:
中国电力出版社,2004
4、Micrel.KS8695XSOHORouterQuickStartGuide.USA:
MicrelCompany,2004
5、Micrel.KS8695XRegisterDescription.USA:
MicrelCompany,2004
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 构造廉价的Arm9 开发平台 构造 廉价 Arm9 开发 平台