打印
[STM32F2]

单片机实现4G模块PPP拨号上网

[复制链接]
楼主: xuannin
手机看帖
扫描二维码
随时随地手机跟帖
21
1988020566| | 2018-3-18 21:50 | 只看该作者 回帖奖励 |倒序浏览
这个的代码是直接移植的linux吗

使用特权

评论回复
22
51xlf| | 2018-3-18 21:59 | 只看该作者
怎么操作的?

使用特权

评论回复
23
i1mcu| | 2018-3-18 21:59 | 只看该作者
传输的速度怎么样?

使用特权

评论回复
24
pmp| | 2018-3-18 21:59 | 只看该作者
期待一个思路,看看能不能行

使用特权

评论回复
25
mmbs| | 2018-3-18 21:59 | 只看该作者
xuannin 发表于 2018-3-16 18:24
由于是公司项目,无法上传代码,我只说告诉各位,这条路走的通

楼主能够提供驱动的代码吗?

使用特权

评论回复
26
1988020566| | 2018-3-18 21:59 | 只看该作者
使用的宏定义吗?

使用特权

评论回复
27
877049204| | 2018-3-19 10:03 | 只看该作者
希望楼主以后跳槽了能给我们讲讲怎么做的

使用特权

评论回复
28
xuannin|  楼主 | 2018-3-19 10:55 | 只看该作者
代码不是移植linux的,其中CMUX和PPP部分代码完全按照网上下载的CMUX及PPP手册自己写的,TCPIP协议栈是移植uip的,另外lwip也有PPP拨号代码,看得头大,自己写吧;PPP的过程很简单,simcom有提供一个叫SIMCOM_WIRELESS_KIT.exe的工具,其中有PPP拨号过程,可以参考

使用特权

评论回复
29
thinkabout4451| | 2018-3-19 18:09 | 只看该作者
xuannin 发表于 2018-3-17 23:19
4G模块是simcom的7600,要注意的是这个模块做cmux有个坑,7600手册上说cmux最大包长可以设置为1500byte,实 ...

串口接收的问题?

使用特权

评论回复
30
xuannin|  楼主 | 2018-3-21 19:35 | 只看该作者
说说hal库串口的问题,串口如果高速率大数据量收发的时候难免会出错,我不知道有多少人跟我一样忘了处理
HAL_UART_ErrorCallback(),那么怪问题就来了,程序会不停进入UART中断,最简单的处理办法是在if(huart->ErrorCode != HAL_UART_ERROR_NONE){huart->State = HAL_UART_STATE_READY;HAL_UART_ErrorCallback(huart);}注释掉huart->State = HAL_UART_STATE_READY;就行了;

使用特权

评论回复
31
xuannin|  楼主 | 2018-3-21 19:47 | 只看该作者
在说说串口接收的一个技巧;接收数据我们都是放在一个缓存中用HAL_UART_Receive_IT()函数,这个大家都会,这个函数在接受固定长度的数据包可能还行,但是不定长的包就麻烦了,因为不收够数据不会回调HAL_UART_RxCpltCallback(),我们就无法处理数据,看看手册串口有一个空闲中断,如是我在中断函数中添加了空闲中断回调函数tmp1 = __HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE);tmp2 = __HAL_UART_GET_IT_SOURCE(huart, UART_IT_IDLE);if((tmp1 != RESET) && (tmp2 != RESET)){__HAL_UART_CLEAR_PEFLAG(huart);UART_Idle_Callback(huart);}每次接收数据以缓存最大长度接收数据,在空闲中断时判断数据是否完成一帧,完成就处理,没完就继续收,这个比网上很多人一次收一个字节要好的多吧

使用特权

评论回复
32
CaLipton| | 2018-3-23 17:33 | 只看该作者
cmux 串口是什么

使用特权

评论回复
33
xuannin|  楼主 | 2018-3-23 20:30 | 只看该作者
串口多路复用,也就是一个串口通过协议虚拟成多个串口

使用特权

评论回复
34
song19881218| | 2018-3-23 21:18 | 只看该作者
这样的意义何在呢?你这是荒废了模块的tcpip自己搞,能确保稳定?ppp拨号本身lwip内都集成了。如果使用lwip移植几个函数就搞定,ppp拨号的速度能快么?

使用特权

评论回复
35
xuannin|  楼主 | 2018-3-27 21:27 | 只看该作者
串口的速度目前为961200,建立2路TCP链接,测试上下行的速度基本可以达到800k左右,串口速度没有继续往上调,这个用起来真不是一般的爽啊!可以说超出预期,没有浪费这个4g模块,而且是全网通的,电信移动联通全可用

使用特权

评论回复
36
xuannin|  楼主 | 2018-3-27 21:31 | 只看该作者
另外,hal串口库就是个坑,大数据收发还是自己写吧

使用特权

评论回复
37
xuannin|  楼主 | 2018-3-27 21:55 | 只看该作者
对应质疑这种做法的高工们,本山哥有句名言:谁用谁知道

使用特权

评论回复
38
song19881218| | 2018-3-28 19:13 | 只看该作者
xuannin 发表于 2018-3-27 21:27
串口的速度目前为961200,建立2路TCP链接,测试上下行的速度基本可以达到800k左右,串口速度没有继续往上调 ...

你这不科学啊,波特率961200,起始位+数据位+停止位 10bit  你理论速度是961200/10 = 96120B 才93K,理论速度才93K,你咋搞到800K的,我算法没错吧,哈哈

使用特权

评论回复
39
Rospiers| | 2018-3-28 19:15 | 只看该作者

传输的速度怎么样

使用特权

评论回复
40
xuannin|  楼主 | 2018-3-28 20:33 | 只看该作者
本帖最后由 xuannin 于 2018-3-28 20:38 编辑
song19881218 发表于 2018-3-28 19:13
你这不科学啊,波特率961200,起始位+数据位+停止位 10bit  你理论速度是961200/10 = 96120B 才93K,理论 ...


你数学很好,计算完全没问题,但是你不知道网络传输速度基本都是以小B计算的吗?也就是bit,你除以10就是byte了,测试软件也是以bit计算的,我发帖都是验证过的,不是信口开河

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则