概述
文章目录
- 实物图
- 1. USB总线协议
- 1.1 主机与设备连接
- 1.2 USB总线链表
- 2. 树莓派与EC200U-CN的连接
- 2.1 使用lsusb命令查看是否有EC200U模块
- 2.2 加载驱动
实物图
1. USB总线协议
我们的树莓派与EC200U是通过USB进行连接的,所以先让我们了解一下USB总线协议。
USB(Universal Serial Bus)全称通用串口总线,USB为解决即插即用需求而诞生,支持热插拔。USB协议版本有USB1.0、USB1.1、USB2.0、USB3.1等,USB使用的是差分传输模式,两个数据线D+和D- ,主机在要和设备通信之前会发送Reset信号来把设备设置到默认的未配置状态。即主机拉低两根信号线(SE0状态)并保持10ms 。
详情可参考:USB协议简介
1.1 主机与设备连接
主机通过设备在D+或D-上的1.5K的上拉电阻来检测设备的连接和断开:
当主机检测到某一个数据线电平拉高(设备在D+或D-上的上拉电阻把电平拉高)并保持一段时间时,就认为有设备连接上来了;
没有设备连接主机时(断开),D+和D-数据线的下拉电阻起作用,把两根数据线都拉成低电平,持续一段时间后就认为被主机断开了。
1.2 USB总线链表
在linux下USB总线会有两个链表,分别是设备链表和驱动链表。
那我们的EC200U(4G模块)来说,当4G模块(设备)插上树莓派(主机)时,就会吧4G模块加进设备链表中,然后,linux内核就会从驱动链表中寻找与4G模块这个设备匹配的驱动,找到后就可以进行通信了,否则就需要去加载驱动了。
(以上是我查找资料获取的知识,不知道是否准确,欢迎留言指正)
2. 树莓派与EC200U-CN的连接
2.1 使用lsusb命令查看是否有EC200U模块
lsusb
2.2 加载驱动
在树莓派下是自带option驱动的,但是我们使用的EC200U这个模块的VID和PID并没有在这个驱动文件中,所以我们需要向sys/bus/usb-serial/drivers/option1/new_id这个文件添加 VID 厂商ID和 PID设备ID 信息即可。
sudo modprobe option
sudo sh -c 'echo "2c7c 0901" > /sys/bus/usb-serial/drivers/option1/new_id'
补充:
sh命令来自于英文单词shell的缩写,其功能是Shell命令语言的解释器。sh其实并不是一个实际存在的命令文件,而是bash的别名命令而已,作为人与系统的翻译官。
加载驱动后就会映射出串口设备,在/dev 文件下即可查看:
ls /dev/
这里映射出7个串口设备文件,ttyUBS0 ~ ttyUSB6,(名称并非固定的,可能改变,看系统分配,我的就会变),其中一般是第一个串口设备(这里是ttyUSB0)是支持AT指令的串口设备文件,这个项目主要是用这个ttyUSB0来进行I/O操作的。
补充:主要加载驱动,在每次开机都要重新进行,所以我写了个脚本,放在了开机自启动的文件中,让每次开机,自动帮我加载EC200U的驱动,
脚本:
#!/bin/bash
#the load driver
sudo modprobe option
#enabling device
sudo sh -c 'echo "2c7c 0901" > /sys/bus/usb-serial/drivers/option1/new_id'
加进开机自启动:
//打开文件
sudo vim /etc/rc.local
//在文件exit 0前加入此句,:wq保存,重启即可生效
bash /home/kk/test/shellec200u.sh
/etc/rc.d/rc.local 用于添加开机启动命令
/etc/rc.local是/etc/rc.d/rc.local的软连接
软连接相当于windows的快捷键
重启后就可以实现开机自动加载ec200U的驱动了。
最后
以上就是负责小蘑菇为你收集整理的【回顾】树莓派4B与EC200U-CN的建立连接实物图1. USB总线协议2. 树莓派与EC200U-CN的连接的全部内容,希望文章能够帮你解决【回顾】树莓派4B与EC200U-CN的建立连接实物图1. USB总线协议2. 树莓派与EC200U-CN的连接所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复