hl340 usb转串口驱动_别犯错了,Linux驱动只能在内核空间开发?

中午跟比较要好的同事一块吃饭,同事刚从单片机开发转Linux开发没多久,目前负责给客户开发一个USB 设备驱动。他跟我抱怨,由于获取不到客户内核代码,因此每次客户那边内核代码发生了改变,自己的驱动程序也要跟着重新编译,太麻烦了。因此,我建议同事把驱动写到APP里面。同事大惊,Linux能在应用层开发驱动?

答案是肯定的。在Linux系统中,对于总线类驱动(usb,i2c,spi等),驱动框架都分为俩部分。一是总线控制器驱动,它负责使能总线传输数据的能力。二是设备驱动,它负责使能挂在总线上的设备。

以usb设备为例,usb host controller驱动使得Linux可以在自己及挂在自己身上的usb 设备(如usb转串口设备、usb摄像头等)之间传输数据。但是usb设备种类有千千万。驱动这些设备,都需要通过usb总线发送特定的数据给到usb设备。比如,我要初始化usb 串口设备,我应该发什么数据设置它的波特率呢?

98a12deb4a6dae5a7fd765e50f083161.png

相信大家已经明白了,总线控制器驱动及总线设备驱动的关系了,其实就是程序分层的思想。总线控制器驱动有了之后,程序员就可以调用她的接口,将自己要发送的数据发送到总线上的设备,这就是设备驱动了。那具体在内核空间调用还是在应用空间调用都是OK的。

笔者在实际工作过程中,有过在应用空间开发i2c设备驱动,安卓APP开发usb 设备驱动(usb转串口)程序的经验。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CH341的串口方式支持WINDOWS 98/ME/2000/XP/Vista/Linux,提供相关驱动程序, CH341的USB串口支持大多数常用的串口监控及调试工具程序。 驱动安装方法: 1. 标准INF文件安装方法 WINDOWS提示找到新硬件,指定驱动程序所在目录DRIVER,自动安装驱动, 如果WINDOWS没有提示找到新硬件,那么在设备管理器的硬件列表中, 选择带问号的USB设备,更新驱动程序并指定目录。 2. 使用驱动程序安装工具 先拔掉USB串口连接线,然后安装,然后插上连接线 直接使用CH341SER.EXE安装包,可以安装/升级/卸载驱动程序, 该方法更适用于最终用户。 CH341串口使用方法: CH341实现USB串口,在逻辑功能方面的使用方法与普通计算机串口相同。 与普通计算机串口的区别: CH341提供的是仿真串口,所以不支持串口本身的纯硬件操作,例如I/O操作, 普通计算机串口是静态设备,而CH341串口是动态设备,理论上随时会断开, CH341的附加功能(下面有介绍):读取外部串行EEPROM,支持更高波特率。 提供“模块调试”工具,启动后将“类型”选择为“手工输入发送”, 打开串口后就可以用于CH341串口或者普通串口的输入输出监控及收发调试。 注意事项: CH341串口是即插即用的USB设备,正在使用CH341串口进行数据传输的过程中, 不可以将其断开(断开是指从USB插座中取出CH341或者关闭CH341的电源), 也就是说,必须在应用程序关闭该串口后,CH341串口才可以从USB插座中拔出。 如果在应用程序使用CH341串口的过程中,CH341串口设备USB插座中断开, 那么应用程序应该尽快关闭CH341串口并退出(关闭及退出可能需要数秒时间)。 如果在CH341串口通讯过程中发生错误,极有可能是CH341串口已经物理断开, 所以在检测到错误后建议关闭CH341串口,稍等两秒后再重新打开串口通讯。 采用设备事件通知的方法可以及时了解CH341串口设备的连接与断开, 从而使串口应用程序能够及时打开和关闭CH341串口。 串口动态链接库CH341PT.DLL提供了API,可以监视CH341串口插拔事件, 可以搜索和识别CH341串口等,具体需参考CH341PT.H文件。 如果通讯波特率较高,建议设置较大的缓冲区,尤其在WINDOWS 98/ME下, 线程调度能力和USB实时性都比WINDOWS 2000/XP差,如果串口接收缓冲区较小, 那么在通讯波特率较高时,接收大量数据会导致串口缓冲区溢出而丢弃数据。 由于底层的USB是将多个字节组成数据包后安插到各个1mS帧中进行传输, 所以有可能将串口收发的紧靠着的两个字节实际分割在两个USB数据包甚至 两个USB帧中,在最坏情况下这两个字节在时间上有可能相隔1mS甚至2mS。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值