当前位置:首页 >> 信息与通信 >>

基于SIM900实现SIM卡上网


基于 SIM900 实现 SIM 卡上网 ********************************LoongEmbedded******************************** 作者:LoongEmbedded(kandi) 时间:2010.06.13 类别:WINCE 驱动开发 ********************************LoongEmb

edded******************************** 1. 硬件环境 CPU:S3C2443X GPRS 模块:SIM900 CPU 和 SIM900 的物理端口连接如下: GPH0 -------------TX GPH1 -------------RX GPH8 -------------CTS GPH9 -------------RTS GPF6 -------------DCD GPE13 -------------DSR GPF4 -------------通过中间模拟电路再连接到 SIM900 的供电引脚 GPG13 -------------POWERKEY GPL9 -------------RESET 相关电路图如下:

1

2. 软件环境 WINCE6.0 3. 实现 3.1 串口驱动相关实现 ⑴ 在 ser_smdk2443.cpp 文件的 CreateSerialObject 函数中加入下面关于 GPRS 的内容 CSerialPDD * CreateSerialObject(LPTSTR lpActivePath, PVOID pMdd,PHWOBJ pHwObj, DWORD DeviceArrayIndex) { CSerialPDD * pSerialPDD = NULL; RETAILMSG( TRUE, (TEXT("DEBUG: CreateSerialObject %d\r\n"), DeviceArrayIndex)); switch (DeviceArrayIndex) { case 0: ///< UART0: GPRS pSerialPDD = new CPdd2443Serial0(lpActivePath,pMdd, pHwObj); break; case 1: ///< UART1: debug,GPRS_DEBG pSerialPDD = new CPdd2443Serial1(lpActivePath,pMdd, pHwObj); break; case 2: ///< UART2: GPS pSerialPDD = new CPdd2443Serial2(lpActivePath, pMdd, pHwObj); break; case 3: ///< UART3:bluetooth pSerialPDD = new CPdd2443Serial3(lpActivePath, pMdd, pHwObj); break; } if (pSerialPDD && !pSerialPDD->Init()) { delete pSerialPDD; pSerialPDD = NULL; } return pSerialPDD; } ⑵在类 CPdd2443Serial0 的定义中假如下面内容用于 UART0 和 SIM900 的 TX/RX 建立物理 连接,本设计不使用硬件流控,所以 RTS 和 CTS 端没有配置为相应的功能端口 class CPdd2443Serial0 : public CPdd2443Uart { ………………… virtual BOOL Init() { …………………………………… m_pIOPregs->GPHCON &= ~(0x3<<0 | 0x3<<2 ); m_pIOPregs->GPHCON |= (0x2<<0 | 0x2<<2 ); m_pIOPregs->GPHUDP |= (0x2<<(0) | 0x2<<(2)); m_pIOPregs->GPHUDP &= ~(0x2<<(16) | 0x2<<(18));

2

m_pDTRPort = (volatile ULONG *)&(m_pIOPregs->GPFDAT); m_pDSRPort = (volatile ULONG *)&(m_pIOPregs->GPGDAT); m_dwDTRPortNum = 0; m_dwDSRPortNum = 3; ……………………………………………….. return CPdd2443Uart::Init(); } return FALSE; }; ………………………………………………. }; ⑶ 串口驱动相关注册表,采用 COM3 ;===============GPRS: UART0 (physical COM3 connector P1) (Serial) COM3=============== [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial1] "DeviceArrayIndex"=dword:0 "Irq"=dword:1c "MemBase"=dword:50000000 "MemLen"=dword:30 ;; 2c "InterruptBitsShift"=dword:0 ; UART 0 Interrupt Sub Register shift bit. "ISTTimeouts"=dword:200 ; every 512 ticks checking Modem status. "Prefix"="COM" "Index"=dword:3 "Dll"="serial_smdk2443.dll" "Order"=dword:0 "Priority"=dword:0 "Port"="COM3:" "DeviceType"=dword:0 "FriendlyName"="GPRS COM3" "Tsp"="unimodem.dll" "IClass"="{CC5195AC-BA49-48a0-BE17-DF6D1B0173DD}" "DevConfig"=hex: 10,00, 00,00, 05,00,00,00, 10,01,00,00, 00,4B,00,00, 00,00, 08, 00, 00, 00,00,00,00

3.2 对 SIM900 模块的时钟及 IO 口控制 这部分的控制需要根据 SIM900 的 datasheet 的具体描述来控制。 ⑴我在 OEMInit() ConfigureGPIO()中加入如下控制代码 /****************************************kandi start***************************************/ //////////////////3G/////////////////////////// #ifdef MX500B

add

3

//threeG_GPIO4=1,normal mode:RF is working s2443IOP->GPLCON &= ~(0x3<<12); s2443IOP->GPLCON |= (0x1<<12); s2443IOP->GPLUDP &= ~(0x3<<12); s2443IOP->GPLDAT |= (0x1<<6); #endif //////////////////////////GPRS/////////////////////////// //GPRS_DCD s2443IOP->GPFCON &= ~(0x3<<12); s2443IOP->GPFCON |= (0x1<<12); s2443IOP->GPFDAT &= ~(0x1<<6); //GPRS_DSR s2443IOP->GPECON &= ~(0x3<<26); s2443IOP->GPECON |= (0x1<<26); s2443IOP->GPEDAT &= ~(0x1<<13); //GPRS_CTS s2443IOP->GPHCON &= ~(0x3<<16); s2443IOP->GPHCON |= (0x1<<16); s2443IOP->GPHDAT &= ~(0x1<<8); //GPRS_RTS s2443IOP->GPHCON &= ~(0x3<<18); s2443IOP->GPHCON |= (0x1<<18); s2443IOP->GPHDAT &= ~(0x1<<9); //EN_GPRS s2443IOP->GPFCON &= ~(0x3<<8); s2443IOP->GPFCON |= (0x1<<8); s2443IOP->GPFDAT |= (0x1<<4); //GPRS_POWERKEY s2443IOP->GPGCON &= ~(0x3<<26); s2443IOP->GPGCON |= (0x1<<26); s2443IOP->GPGUDP &= ~(0x3<<26); s2443IOP->GPGDAT &= ~(0x1<<13); #ifdef MX500B //threeG_RESET s2443IOP->GPLCON &= ~(0x3<<10); s2443IOP->GPLCON |= (0x1<<10); s2443IOP->GPLUDP &= ~(0x3<<10);

4

s2443IOP->GPLDAT |= (0x1<<5); for(i=0;i<20;i++) { i=i; } s2443IOP->GPLDAT &= ~(0x1<<5); OALMSG(1, (L"OEMInit kandi test 1111\r\n")); #else //GPRS_RESET s2443IOP->GPLCON &= ~(0x3<<18); s2443IOP->GPLCON |= (0x1<<18); s2443IOP->GPLUDP &= ~(0x3<<18); s2443IOP->GPLDAT |= (0x1<<9); for(i=0;i<20;i++) { i=i; } s2443IOP->GPLDAT &= ~(0x1<<9); OALMSG(1, (L"OEMInit kandi test 22222\r\n")); #endif ⑵在 CMC.dll 驱动增加下面内容 因为我们的产品很多是通信模块,故创建 cmc.dll 来对 GPS、GPRS、3G、RFID 和 BT 等模 块进行控制, CMC_Init() CmcGPIOInit()加入如下内容来满足 3G 模块和 SIM900 模块时 在 序的要求 #ifdef MX500B //threeG_RESET v_pIOP_CMC_regs->GPLDAT |= (0x1<<5); RETAILMSG(CMC_DEBUG_MESSAGE, (L"CmcGPIOInit kandi test 1111\r\n")); #else //GPRS_RESET v_pIOP_CMC_regs->GPLDAT |= (0x1<<9); Sleep(1000); v_pIOP_CMC_regs->GPGDAT |= (0x1<<13); RETAILMSG(CMC_DEBUG_MESSAGE, (L"CmcGPIOInit kandi test 222222\r\n")); #endif 4. 注意的问题 ⑴因为我们的系统没有使用硬件流控的方式,所以在 WINCE 自带的控制面板下,新建一个 连接的时候,流控方式也必须选为“none”

5

5.

6


相关文章:
SIM900A模块-单片机
软件部分通过 KeilC 软件进行编程,实现棉蚜快速监测装置的远程控制。 基于 SIM900A 的农业远程控制系统通过用户手机向 GSM 网络发送短信,接收 用户机的控制命令对...
SIM900A模块系列调试(未完)
使用标准的 AT 指令对 SIM900A 模块进行控制,实现...如果还是发现模块网络指示灯还是快闪, 那么可以更换一...移动或联通卡再试试,考虑到可能是模块对 SIM 卡不...
SIM900A各功能指令
SIM 卡未满的时候, SIM900A 模块会返回数据给...否则无法实现通信,推荐在 ADSL 网络下进行测试, 并...2.7.1 TCP 连接 TCP 是基于连接的协议,在收发数据...
GPRS无线模块SIM900A硬件设计注意事项
GPRS无线模块SIM900A硬件设计注意事项_电子/电路_工程...主要原因是从模块开机到注册网络这段时间内,射频发射...3.4SIM 卡部分设计 模块支持 1.8/3.0V 的 SIM ...
SIM900A V4 使用简介
SIM900A 模块输出串口输出的高电压 就为 5V, 实现...SIM 卡接口: 模块还有一个推拉式 SIM 卡槽。 ...7 执行任何功能以前,一定要看模块是否已经注册到网络...
嵌入式mini stm32基于sim900a的温度实时报警系统_图文
嵌入式mini stm32基于sim900a的温度实时报警系统_...和驱动模块等外围电路元件实现温度的采集和数据的传输...表明 SIM 卡没有插入或 TC35 正在进行网络登录;当...
3、SIM800-sim900系类模块GPRS部分调试笔记
3、SIM800-sim900系类模块GPRS部分调试笔记_电子/...如果您的网络环境是基于 ADSL 线路上网,那么绝大...SIM 卡,这两个品牌的 SIM 卡默认开通 CMNET 数据...
SIM300_SIM900调试心得
你还是可以上 web 的, 就是说你的手机随能上网,但是就是无法实现 GPRS CMNET...GSMGPR基于SIM900A的应用... 26页 2下载券 sim300指令总结与单片机... 4页...
SIM900 FTP
SIM900 FTP_计算机硬件及网络_IT/计算机_专业资料。SIM900 模块 FTP初始化流程AT+CSQ +CSQ: 21,0 OK AT+CREG? +CREG: 0,1 OK AT+CGATT? +CGATT: 1 OK...
基于sim900a的智能家居远程防盗报警系统的设计56128596
√设计 B.论文 适用专业 上机时数 主要研究内容 以单片机为核心,基于 sim900a 无线通信模块,设计一个通过短消息进行远程 报警功能的系统。主要内容包括:单片机最...
更多相关标签: