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

主流的嵌入式智能终端如pos机、物流终端、车载导航、工业平板等,均采用linux为操作系统(android的内核实质也是linux),当这类产品要连接多个外设时,需要扩展外部接口。pc行业主流的usb扩展外设在嵌入式领域实际应用中存在兼容性和稳定性的问题,调试起来也较为复杂。因此,目前在嵌入式领域,稳定和通用的扩展外设方式,仍旧是串口连接(含uart,rs232,rs485)。
本方案介绍wk2x系列uarts在嵌入式linux(android)下扩展多串口方案,尤其是嵌入式linux串口扩展的驱动设计方案的思路和原则。
嵌入式系统产品的软件主要包括驱动设计、系统移植、和应用app设计。本方案主要介绍wk2x在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,展讯,瑞芯微,全志,炬力,君正等主控平台方案中。为开微电子技术支持可以为用户提供驱动代码源代码,并协助支持用户进行移植和适配 。

简述:影响电缆绝缘电阻的四个因素
判断加工中心精度的方法有哪些
Apollo 探针卡的主要特征是怎样的
汽车SoC嵌入式存储器的优化诊断策略
无人机芯片战火全面引爆,台厂猛攻大陆版图
嵌入式Linux串口扩展的驱动设计方案解析
“芯”在囧途: 电源管理IC如何摆脱产业困境?
开关电源模块的应用领域
基于Nios II和uClinux实现远程测控服务器的设计
圆形滤波电连接器的特点和性能
英特尔三季度全球微处理器市场份额增至83.7%
锦通包税进口绝对优势
中国房价称霸全球!北京房价均降1万还是买不起,房价排名北京第二第一竟然是它!
基于ZigBee技术的无线数传电路模块设计
OPPO已经开始启动6G研发 国内最早宣布开始研发6G公司之一
小米5s和vivox7哪个好?一眼辨别让你买到高性价比手机
欧盟银行业监管局表示过度监管数字货币行业会限制金融创新
宽带I/Q调制器简化无线电设计
RF2175线性放大器IC的引脚排列和功能介绍
意外!三星S8缺席MWC,但他们一口气发布了3款平板电脑