织梦CMS - 轻松建站从此开始!

欧博ABG-会员注册-官网网址

全志V3S移植移远EC200S

时间:2024-05-19 18:47来源: 作者:admin 点击: 59 次
哇酷开发者社区,你值得拥有。

附文档
Quectel_EC200S_Linux_USB_Driver_User_Guide_V1.0.pdf

828c89038ca49ada9b7d6f7064a2195.jpg


1. 添加 VID 和 PID
在文件[KERNEL]/drivers/usb/serial/option.c 中添加模块的 VID 和 PID 信息,如下所示:

static const struct usb_device_id option_ids[] = { #if 1 //Added by Quectel { USB_DEVICE(0x2C7C, 0x6002) }, /* Quectel EC200S */ #endif

_20221107203010.png

2.添加USB零包

[KERNEL]/drivers/usb/serial/usb_wwan.c.

static struct urb *usb_wwan_setup_urb(struct usb_serial *serial, int endpoint, int dir, void *ctx, char *buf, int len,void (*callback) (struct urb *)) { …… usb_fill_bulk_urb(urb, serial->dev, usb_sndbulkpipe(serial->dev, endpoint) | dir, buf, len, callback, ctx); #if 1 //Added by Quectel for zero packet if (dir == USB_DIR_OUT) { struct usb_device_descriptor *desc = &serial->dev->descriptor; if (desc->idVendor == cpu_to_le16(0x2C7C)) urb->transfer_flags |= URB_ZERO_PACKET; } #endif return urb; }

_20221107204036.png


3.增加复位恢复机制
[KERNEL]/drivers/usb/serial/option.c。

static struct usb_serial_driver option_1port_device = { …… #ifdef CONFIG_PM .suspend = usb_wwan_suspend, .resume = usb_wwan_resume, #if 1 //Added by Quectel .reset_resume = usb_wwan_resume, #endif #endif };

3.png


接下来使能一些内核配置项


TODO......



烧录内核成功后
1.烧录完成后使用指令

ls /dev/ttyUSB*

可以看到下面的3个模拟的usb设备

_20221108110226.png

2.之后执行获取到IP地址

ifconfig usb1 up udhcpc -i usb1

_20221108110343.png

3.使用AT指令使模块拨号

cat /dev/ttyUSB2 & # 设置为RNDIS模式 echo -e "AT+QCFG=\"usbnet\",3\r\n" > /dev/ttyUSB2 # 查询指令是否生效 echo -e "AT+QCFG=\"usbnet\"\r\n" > /dev/ttyUSB2 # 发送 AT 指令拨号上网指令 echo -e "AT+qnetdevctl=1,1\r\n" > /dev/ttyUSB2

_20221108111929.png

4.执行ping指令测试拨号是否成功

_20221108111956.png



附一些常用的AT指令

echo -e "AT+QCCID\r\n" >/dev/ttyUSB2 //查询SIM卡 echo -e "AT+CFUN=1,1\r\n" >/dev/ttyUSB2 //重启模块 echo -e "AT+QSIMDET=1\r\n" >/dev/ttyUSB2 //开启SIM卡热插拔状态报告 echo -e "AT+QSIMDET=1,1\r\n" >/dev/ttyUSB2 //开启SIM卡检测功能 echo -e "AT+CSQ\r\n" >/dev/ttyUSB2 //查询信号强度 echo -e "AT+QNWINFO\r\n" >/dev/ttyUSB2 //查询网络状态 echo -e "AT+QCFG=\"NWSCANMODE\",3,1\r\n" >/dev/ttyUSB2 //设置4G LTE only echo -e "AT+QCFG=\"NWSCANMODE\",2,1\r\n" >/dev/ttyUSB2 //设置3G WCDMA only echo -e "AT+QCFG=\"NWSCANMODE\",1,1\r\n" >/dev/ttyUSB2 //设置2G GSM only echo -e "AT+QCFG=\"NWSCANMODE\",0,1\r\n" >/dev/ttyUSB2 //设置自动搜索网络 # AT+QSIMDET=1,1或AT+QSIMDET=1,0开启 可以设置高电平 或者低电平有效//SIM卡热拔插,同一个电路 肯定不可以设置两种sim卡检测状态 要么高电平有效 要么低电平有效 # AT+QSIMDET=0 关闭热拔插功能 # 通过AT命令开启SIM卡检查功能 # 举例: # AT+QSIMSTAT=1 //开启SIM卡热拔插状态报告 # AT+QSIMDET=1,1或AT+QSIMDET=1,0//开启 SIM卡检测功能 # 当SIM卡拔出或者插上的时候,模块会有相应的提示: # +CPIN:NOT READY # AT+QSIMSTAT=1,1或AT+QSIMSTAT=1,0 # Call Ready

(责任编辑:)
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:
发布者资料
查看详细资料 发送留言 加为好友 用户等级: 注册时间:2024-12-22 11:12 最后登录:2024-12-22 11:12
栏目列表
推荐内容