- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于ARM微处理器和uClinux的串行通信的设计与实现
串行通信是微计算机之间一种常见的近距离通信手段,因使用方便、编程简单而广泛使用,几乎所有的微控制器、PC都提供串行通信接口。在实际应用中通常也需要嵌入式设备与外部设备进行通信,本文针对该应用,设计并实现了在嵌入式uClinux环境下,使用RS232接口进行串行通信的方法。
1 ARM简介
ARM(Advanced RISC Machines)是采用ARM技术知识产权(IP)核的微处理器,其应用已经深
入到工业控制、无线通信、网络应用、消费类电子产品、成像和安全产品等诸多领域[1]。根据ARM微处理器特点及应用领域,分为ARM7、ARM9、ARM9E、StrongARM 、ARM10等系列,其中ARM7系列微处理器为低功耗的32位RISC处理器,适合对功耗要求较高的应用如便携式产品,具有很高的性价比。本文所采用的华恒公司嵌入式LINUX开发平台HHARM4510-R1,其处理器即采用了ARM7系列的S3C4510B处理器。
2 嵌入式uClinux系统简介及开发环境建立
uClinux中u表示Micro,微小的意思,C表示Control,控制的意思,所以uClinux就是Micro-Control
-Linux,字面上就可看出它的含义即"微控制领域的Linux系统"。uClinux系统遵循GNU通用公共许可证(GNU GPL)[2],在标准Linux基础上进行了适当裁剪和优化,是一个高度优化、代码紧凑的嵌入式Linux,并保留了Linux的大多数的优点:稳定、良好的移植性、优秀的网络功能、完备的对各种文件系统的支持、以及标准丰富的API等。是专门针对NOMMU(Memory Management UNIt)的ARM微处理器的嵌入式操作系统。图1为uClinux的基本构架。文中选用的S3C4510B处理器为了降低硬件成本及运行功耗并简化芯片设计,取消了MMU功能模块,不支持标准Linux,而uClinux操作系统不需要MMU支持也可运行在NOMMU的硬件平台上,并具有很好的稳定性和可靠性。
图1 uClinux的基本构架
基于uClinux系统的应用开发环境由基于S3C4510B的目标系统硬件开发板和宿主机PC构成。开发板用于运行uClinux操作系统和系统应用软件,装有Linux的PC机则完成uClinux系统的内核编译、应用程序开发和调试工作。在S3C4510B无法安装所需的编译器,所以借助宿主机,采用交叉编译调试的方式,即在装有Linux的宿主机上对即将运行在目标板上的应用程序进行编译,生成可在目标板上运行的代码格式。图2为交叉编译方式。
图2 交叉编译方式
首先为安装Linux的宿主机建立交叉编译器,再采用以下步骤对uClinux内核进行编译[3]:
然后将内核加载运行,嵌入式应用开发平台就已经搭建好了,可以在这个平台上开发
应用程序进行嵌入式应用了。图3为基于uClinux的嵌入式系统框图结构。
图3 uClinux嵌入式系统框图
3 S3C4510B和uClinux下串行通信的设计及实现
Linux对串口的操作是通过设备文件进行访问的,只需打开相应的串口文件即可[4]。
本文介绍了在S3C4510B上发送数据到串口,与串口进行通信的过程。HHARM4510-R1提供了两个RS232串口[5],通常默认对其COM1进行操作,其对应的设备为/dev/ttyS0。与串口进行通信需要经过如下过程,首先要把其头文件包括进来。
图4 串行通信流程图
uClinux操作系统本身具有强大的网络功能,同时目标板提供了两个RS232串口和一个以太网接口,将目标板串口与宿主机相连,在宿主机上启动xminicom登录到目标板,再通过以太网接口以NFS的形式挂载目标板系统到宿主机上,即可在直接在宿主机环境下对程序进行调试和运行,调试成功后,将程序烧写入HHARM4510-R1板FLASH存储器中。
4 结束语
本文论述了采用基于S3C4510B的ARM微处理器进行串行通信的设计与实现方法,并通过测试验证了其方法的有效和正确性。嵌入式设备与外围设备通信的方式方法一直是人们所关心的问题,我们将在此基础上着力于进一步开发出基于协议的串行通讯程序。