【嵌入式linux】使用4G模块EC20自适应运营商和ppp拨号上网

准备:移植好pppd软件工具(可见下面的参考文章)、ppp拨号脚本、能上网的SIM卡、使能复位好EC20模块、串口初始化、读写的接口(因为CPU的USB接口给占用了,因此这里使用串口与模块通信)

识别、适应运营商原理:每个运营商的SIM卡会有相应规则的IMSI号码。通过AT指令(AT+CIMI)和EC20模块通信,读取SIM卡的IMSI号,然后判断CIMI号是哪个运营商的SIM卡,最后根据运营商的拨号码传递给拨号脚本进行拨号。

判断运营商的接口:根据获取到的IMSI判断运营商

static int get_IMSI(char *IMSI)
{
   
    char s2[128]="AT+CIMI\r\n";
    char s1[1024]={
   0};
    tcflush(ec20_fd,TCIOFLUSH);
    UART0_Send(ec20_fd, s2,strlen(s2));
    usleep(500000);
    int count=UART0_Recv(ec20_fd,5,0,s1,1024);
    int i=0;
    #if 0
    printf("count=%d\n",count);
    while(count-->0)
    {
   
        printf("%c",s1[i++]);
    }
    printf("\n");
    #endif
    char *p=s1;
    while(*p++)
    {
   
        // printf("%c ",*p);
        if(*p>='0'&&*p<='9')
        {
   
            memcpy(IMSI,p,15);
            break;
        }
    }
    //printf("IMSI:%s\n",IMSI);
    if(IMSI
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值