嵌入式linux 串口驱动,基于华邦W90P710的嵌入式Linux串口驱动的实现方法

摘 要: 基于华邦W90P710处理器的Linux内核应用,详细介绍了Linux串口驱动的实现方法。同时对Linux文件系统操作入口函数及内核的编译做了详细的说明。

关键词: ARM;Linux;UART;文件系统;串口驱动程序

嵌入式Linux是一种很受欢迎的操作系统,具有开放源码、不存在黑箱技术、内核小、功能强大、运行稳定、效率高、易于定制裁减等特点[1],广泛应用于工控产品。很多工控产品需要和外部设备进行信息交换,而串口通信是最简单快捷的实现方法。在不同的工控产品中,由于对所选用的串口元件或者串口通信的数据格式、波特率等有不同的需求,需要对串口驱动进行开发。华邦W90P710采用ARM的ARM7TDMI微处理器核心,采用?滋CLinux-2.4.20内核,支持4组通用异步接收发送口(UART),下面基于华邦W90P710的串口驱动详细分析串口驱动的实现方法,实现嵌入式设备通过串口对外通信。

1 华邦W90P710 UART介绍

华邦W90P710支持4组UART,串口的控制主要通过以下寄存器实现[2]:

(1)行寄存器(UART_LCR):设置数据位长度、奇偶校验、停止位数。

(2)波特率除数寄存器(UART_DLL、UART_DLM):波特率发生器的公式为:BaudOut=crystal clock/16×[Divisor +2],Divisor为当前波特率。

(3)Modem控制寄存器(UART_MCR):控制RTS、CTS等信号。

(4)FIFO控制寄存器(UART_FCR):设置FIFO的长度,复位FIFO等控制。

(5)接收超时寄存器(UART_TOR):收到首个字节后接收器启动本超时,之后每收到一个字节后都会重置该值,在此超时时间内不再收到数据时,接收器会产生一个接收中断。

(6)中断控制器(UART_IER):设置接收、发送、行中断等。

在使用RXDn、TXDn前必须对GPIO进行配置,使能RXDn、TXDn,串口才可正常运行。GPIO配置对应表如表1所示。

201432817858582889.gif

2 Linux系统驱动介绍

设备驱动程序是操作系统内核和机器硬件之间的接口。设备驱动程序为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,应用程序可以像操作普通文件一样对硬件设备进行操作。同时,设备驱动程序是内核的一部分[3]。图1所示为设备驱动程序接口流程图。

6469954659276e03bdda5b1a7d04bb4d.gif

Linux系统的设备分为字符设备、块设备和网络设备三种。字符设备是指存取时没有缓存的设备,只能顺序读写。典型的字符设备包括鼠标、键盘、串行口等;块设备一般都有缓存来支持,并且块设备必须能够支持随机存取。块设备主要包括硬盘设备、CD-ROM等;网络设备在Linux系统中用做专门的处理,Linux的网络系统主要是基于BSD Unix的socket机制[4]。 还没注册? 现在免费注册,您即可: ?阅读所有技术文章及下载网站资料; ?定期获得业界最新资讯及设计实例; ?拥有个人空间参与网站及客户活动; ?撰写博客与业界朋友交流分享经验; 已经注册? 登录阅览全部精彩内容 用户名: 密码:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值