谢 东
(铜陵学院电气工程系,安徽铜陵244000)
嵌入式系统是以应用为中心,以计算机技术为基础,软件硬件可裁剪,对功能、可靠性、成本、体积及功耗有严格要求的专用计算机系统。随着嵌入式系统日益广泛的应用,市场对嵌入式技术应用人才的需求也越来越迫切。所以,在高校自动化、计算机等相关专业开设嵌入式系统教学课程是大势所趋。鉴于此,笔者对用于嵌入式系统教学的实验装置进行了研发。
本文介绍的是以嵌入式系统教学为目的的实验装置。通过本装置,学生可熟悉μ Clinux操作系统,了解操作系统的启动过程、调度机制、内存管理、文件系统及操作系统的各个方面。也可以用来了解CPU与其它外设的控制原理,领会嵌入式系统的网络通信、CAN通信和通信协议的嵌入式μ Clinux实现等。
本装置硬件结构如图1所示,主要包括CPU、存储器、人机接口、测量控制电路、CAN通信接口和以太网通信接口等。通过20脚标准JTAG调试接口,结合ARM 的集成开发环境(IDE)ADS1.2,可调试驱动程序、内核和启动代码等,并可查看ARM芯片内部的硬件资源。
图1 系统硬件结构
CPU采用的是S3C44B0X微处理器,存储电路包括一片1M×16位的Flash(SST39VF160)和一片4M×16位的SDRAM(HY57V65160B)。Flash存储芯片用于存放启动代码、内核和文件系统。SDRAM由CPU专用SDRAM片选信号nSCS0选通,系统启动时,由CPU将Flash中的程序调入SDRAM后运行[1]。
人机接口包括键盘和LCD液晶屏。
测量控制电路主要是A/D和D/A转换电路。S3C44B0X内部具有8通道10位A/D转换器。本装置提供了两路直流电压测量电路,经S3C44B0X的AIN1和AIN2两个输入通道将被测直流电压送入其内部的A/D转换器进行转换。D/A转换由芯片AD5320完成,它是12位串行D/A转换器。
本装置CAN通信接口主要由CAN控制器和CAN收发器组成。CAN控制器采用独立的SJA1000,它在S3C44B0X CPU的控制下完成数据的接收与发送。CAN收发器 PCA82C250提供了对总线的差动接收和差动发送能力,能够增强信号抗干扰能力[2]。
以太网通信接口由芯片 RTL8019AS、滤波器20F001N以及型号为 RJ45的 8针插头组成。RT L8019AS输出端连接20F001N,它是一个双绞线驱动/接收器,为耦合隔离变压器模块。之后通过带RJ45插头的双绞线接入以太网。
本实验装置的软件结构如图2所示。
启动代码Boot Loader是在系统复位后执行的第一段代码。本装置的功能如下:禁止所有的中断、设置处理器时钟和运行速度完成对CPU初始化、初始化存储区、设置堆栈指针并将bss段清0、跳转到内核印像入口并开始执行内核程序。
图2 系统软件结构
本装置操作系统 μ Clinux支持 NFS、ext2、romfs、JFFS等文件系统。本装置采用的文件系统是romfs文件系统。通过在宿主机上建立μ Clinux的交叉开发编译环境,生成内核和文件系统的映像文件。然后将映像文件通过串行口下载到目标板,烧写在目标板闪存的不同位置处。这样,启动代码初始化硬件设施,内核挂载文件系统,整个系统启动后,操作人员输人执行命令,可以做各项实验[3]。
本装置对ADC、DAC、键盘、LCD 液晶屏、CAN通信接口和以太网通信接口等硬件电路都设计了相应的驱动程序。
学生通过应用程序可以学习ARM汇编程序和C语言程序的编写与调试、掌握CPU基本接口功能及各硬件外设的应用方法。此外,学生也可以自行编写应用程序,从而掌握嵌入式系统软件的开发流程和技巧。
本实验装置的开发是对嵌入式系统实验教学的一种尝试。实验装置开发成功后,已在本校相关专业的实验教学中投入使用,可进行基础验证型实验和设计综合型实验。可开设的实验项目有:①ARM开发环境实验;②C语言、汇编语言编程实验;③串口通讯实验;④中断实验;⑤A/D、D/A转换实验;⑥键盘、LED和 LCD实验;⑦BootLoader实验;⑧μ Clinux内核移植及裁减实验;⑨CAN总线通信实验;⑩以太网通信实验; 11嵌入式Web服务器实验;12 μ Clinux下驱动程序编写实验等。
[1] 田泽.嵌入式系统开发与应用.北京:北京航空航天大学出版社,2005
[2] 饶运涛等编著.现场总线CAN原理与应用技术.北京:北京航空航天大学出版社,2003
[3] 邹思轶.Linux嵌入式设计与应用.北京:清华大学出版社,2002