嵌入式Linux串口扩展的驱动设计方案解析

接口/总线/驱动

1116人已加入

描述

  主流的嵌入式智能终端如POS机、物流终端、车载导航、工业平板等,均采用Linux为操作系统(Android的内核实质也是Linux),当这类产品要连接多个外设时,需要扩展外部接口。PC行业主流的USB扩展外设在嵌入式领域实际应用中存在兼容性和稳定性的问题,调试起来也较为复杂。因此,目前在嵌入式领域,稳定和通用的扩展外设方式,仍旧是串口连接(含UART,RS232,RS485)。

  本方案介绍WK2X系列UARTs在嵌入式Linux(Android)下扩展多串口方案,尤其是嵌入式Linux串口扩展的驱动设计方案的思路和原则。

  嵌入式系统产品的软件主要包括驱动设计、系统移植、和应用APP设计。本方案主要介绍WK2X在LINUX下的驱动程序设计,这是方案设计中的重点和难点。

  嵌入式系统的驱动程序是linux系统内核和设备硬件之间的接口,把系统调用映射到具体设备对于实际硬件的特定操作上,具体关系可以参见附图:

  Linux

  方案设计要点:

  通过这种方法,应用程序就可以像操作普通文件一样操作硬件设备,用户程序只需要关心这个抽象出来的文件,而一切同硬件打交道的工作都交给了驱动程序。比如要向屏幕输出一串字符串,我们只需要把字符串写到显卡所抽象出来的文件里,而真正把字符串传到显卡里的工作就是由驱动程序来完成的。

  在Linux下,驱动程序是内核的一部分,运行在内核态下,有两种加载方式:

  可以将驱动静态的和内核编译在一起,缺点是内核会比较大,而且如果驱动出错,会导致整个系统崩溃;

  也可以module的方式编译,在需要的时候动态的载入。

  为开微电子提供的WK2X系列串口Android 驱动程序,基于Linux内核开发的TTY标准设备驱动,提供2.6~3.0/3.1~4.4两个版本,Linux3.1内核以上驱动版本采用DTS设备树架构,这两个版本是目前应用较广的版本,可以很方便移植到其它版本的Linux中,该驱动已经实际应用到多个量产平台中,在Android5.0-8.0系统版本中均长期稳定工作。

  典型应用案例:

  目前已经成功的应用于INTEL ATOM,CSR,高通,MTK,展讯,瑞芯微,全志,炬力,君正等主控平台方案中。为开微电子技术支持可以为用户提供驱动代码源代码,并协助支持用户进行移植和适配 。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分