移远EC200A OpenCPU笔记
模组搭载OpenWrt操作系统
1. 编译SDK,生成固件
2. 烧录固件
git clone -b master_r02 ssh://git@git-master.quectel.com:8407/ec200a/ec200a_linux.git
quectel_ec200a$ source package/quectel/compile/ql_build_config
quectel_ec200a$ buildconfig EC200A_CNAA EC200ACNAAR01A01M1G STD
quectel_ec200a$ build_fw
编译完成后生成的固件存放于 bin/target 目录下
模组联网流程
1. 注网(模组内置的程序自动实现);
2. 数据拨号datacall(需要自己代码调用实现,有的卡有APN,拨号的时候需要apn、用户名、密码、鉴权;有的卡没有APN,会使用运营商默认的apn去拨号获取ip地址)
网络连接阶段: ql_nw_init() - 初始化网络服务 ql_nw_set_config() - 配置网络参数(网络模式和漫游偏好) ql_nw_get_reg_status() - 检查网络注册状态,等待注册成功 ql_wan_init() - 初始化WAN服务 ql_wan_set_autoconnect() - 设置自动连接参数 ql_wan_start_ex() - 启动WAN连接 ql_dev_init() - 初始化设备模块监控与配置阶段: ql_nw_get_operator_name() - 获取运营商信息 ql_nw_get_selection() - 获取网络选择信息 ql_nw_get_signal_strength() - 获取信号强度信息 ql_nw_get_reg_status() - 检查网络注册状态 ql_get_data_call_info() - 获取数据呼叫信息 net_init() - 配置系统网络参数(包括clear_dns(), add_dns(), clear_iptables(), add_iptables(), clear_route(), add_route())异常处理: 当网络注册失败超过阈值时,调用ql_dev_set_modem_fun()重启调制解调器功能资源释放(程序退出时): ql_dev_release() - 释放设备模块资源 ql_wan_release() - 释放WAN服务资源 ql_nw_release() - 释放网络服务资源 ql_sim_release() - 释放SIM卡模块资源
外置nand flash
Linux对NAND 闪存挂载
将"原始闪存空间"(MTD)格式化为"有管理功能的存储空间"(UBI)然后在这个管理空间上创建"文件系统"(UBIFS)最后将这个文件系统"连接到"系统的目录树上(挂载)
模组的USB接到PC端,可以使用AT串口进行通信
serial_quectel 进程是监听主串口,serial_quectel 进程打开socket接口和主串口设备,当监听到AT指令时,serial_quectel 进程把AT指令发送到socket接口,进而传递给atcmdsrv进程处理。atcmdsrv进程处理完AT指令,发出的response被serial_quectel 进程接收并输出到主串口设备