查看:
14346
回复: 12 |
参赛作品《基于GD32F103与GPRS的边缘控制板》
|
|||
|
发表于2018-05-08 09:52:52
|
显示全部楼层
1#
电梯直达
【报名阶段需要填写的内容】 1. 参赛者姓名(必填项):郭同学
2. 单位或学校名称(选填项):深圳市易联通信技术有限公司
3. 当前职务或职称(选填项):技术员 4. 参赛作品的名字(必填项):基于GD32F103与GPRS的边缘控制板 5. 简要陈述您的idea和作品(必填项): 1)物联网系统需要采集大量的终端数据 2)物联网系统的一些简单算法和控制需要放在边缘设备中处理 3)物联网系统需要和终端进行数据交互 4)因此边缘处理在物联网系统中是至关重要的 6. 拟用到的立创商城在售物料(必填项): GD32F103C8T6 AMS1084CD-ADJ CA45-A-6.3V-22uF-M MUN5233T1G 电阻 电容 7. 拟用到的非立创商城物料或其它补充(必填项): MC20 GPS天线 GPRS天线 SIM卡 8. 拟用到的EDA工具软件名称(必填项): PADS2009 【作品正式发表(报名成功后进入设计阶段)需要填写的内容】 一、作品简介 例如,可以包括但不局限于以下内容: 1.作品的整机外观图片或焊接组装好的PCBA图片;
2.作品的研究背景、目的和功能、市场应用前景; 物联网在当下非常流行,如此多的终端要与服务器进行连接。这中间必然需要一个介质(桥梁),我们的这款产品即是这个介质。定位为中间介质这就意味着其设计体积必须要尽可能的小但功能又要尽可能的全。我们定位其为边缘计算,是因为它除了能充当物与服务器之间的通信介质之外还能额外的进行算法计算、数据处理。这得益于使用了GD32F103C8这款单片机。这款单片机是基ARM ® Cortex ? -M3的32-bit MCU。主频最高可达108MHz,工作电压从2.6至3.6V、64KB的Flash、20KB的SRAM等特性。 3.作品在创新性、趣味性、实用性甚至公益性方面,有哪些亮点可体现? a.体积小易于嵌入种类物联网产品 b.可应用于边缘计算 c.可嵌入智慧城市终端(例如:智能井盖、温湿度采集) d.可嵌入汽车进行远程监控与轨迹管理 二、系统构架图 用流程图或思维导图等形式,描述您的作品的组成构架,即方案图。
三、硬件部分的描述 1.附上原理图&PCB实物图的图片或者源文件(官方建议大家尽量用源文件上传),如果是图片,请确保图片是清晰可辨的; a.电源 b.mcu c.远程控制
d.GPRS
2.用文字把该作品的实现原理、系统的工作过程大致讲解一下。 本系统主要包括电源、MCU、远程控制、GPRS几个部分。正面依次进行简要讲解 a.电源,本系统的应用场景是针对第三方设计的一种远程采数、远程控制、边缘计算的嵌入式电路板。所以其电源使用第三方产品提供的5V直流进行供电。 1)5V直流经Q402 R38 Q14进行控制是否提供给U403使用。U403将5V电源转成4V电源供GPRS模块使用。 2)5V直流经Q4 R9 R10 Q13进行控制是否提供给远程控制电路使用。 3)5V直流经U6 转换成3.3V后给MCU 进行供电 4)5V直流经U12转成3.3V后给GPS进行供电 b.MCU,MCU是本系统的大脑,所以运算和控制都由其实现。主要包括最小电路(复位电路、Debug)、外部信号检测、输出控制等电路 c.远程控制电路,本系统远程控制使用的是继电器隔离电路。继电器由R34、Y1、D2组成的电路进行驱动。 d.GPRS电路,本系统采用移远公司的MC20模块实现GPRS功能。MC20包含GPRS和GPS两大部分。GPRS使用贴片SIM卡(SIM1)。GPRS主要完成本系统与远程服务器之间的数据交互。 3.注明所用到的EDA工具软件名称并附上设计链接。 本系统使用的工具是PADS 9.0 四、材料清单(BOM列表) 列出您这个作品所用到的主要器件(关键器件即可),比如单片机&ARM芯片、专用集成芯片(ASIC)、传感器、功能模块等。 如果所列出的芯片是来自我们立创商城上的,最好能写出该器件的商品编号或附上对应购买链接。
GD32F103C8T6 https://item.szlcsc.com/79128.html PT5110E23C-33https://item.szlcsc.com/82486.html MIC5205-3.3YM5https://item.szlcsc.com/38951.html AMS1084CD-ADJ 编带https://item.szlcsc.com/46627.html MEM2301XG 编带https://item.szlcsc.com/84101.html MUN5233T1G 编带https://item.szlcsc.com/188598.html MMBT8050D 编带 https://item.szlcsc.com/17985.html MMBT8550D(2TY) 编带https://item.szlcsc.com/48404.html
五、软件部分的描述(选填) 如果您的作品涉及到软件,请列出作品对应的软件工作流程图,及关键部分的例程、源码(如果您想开源的话请上传全部源码)。 1)GPRS任务流程图及代码
void HaiGsmTask(void) { if(gInitStepList[gGsmMgr.Status]) gInitStepList[gGsmMgr.Status](); /*Have some tasks running*/ if(gGsmMgr.Task.u8Task > 0) { if(gGsmMgr.Status == GSM_NOTHING_TODO) { gGsmMgr.Status = GSM_MODULE_PWR_ON; gGsmMgr.TimerId = OpenCycleSoftTimerBySecond(HaiGsmTimerCB ,5);//5s, find value of csq } gGsmMgr.DelaySleepTimer = 200; } else { /*没有任务 就休眠吧 这里的休眠就是直接关闭模块*/ if(gGsmMgr.Status != GSM_NOTHING_TODO) { if(gGsmMgr.DelaySleepTimer-- == 0) { gGsmMgr.Status = GSM_MODULE_SLEEP; StopTimer(gGsmMgr.TimerId); SysDelaySomeMs(5); Destroytimer(gGsmMgr.TimerId); } } } HaiGsmAnalyze(); }2) GPRS解析流程及代码
void HaiGsmAnalyze(void) { //uint8_t *buf = NULL; static uint8_t *strPos1 = NULL; uint16_t Index; uint8_t Steps; tsDrvGsmReceive Param; tsSearchStrExResult SearchRet; DrvGsmGetReceiveBuf(&Param); do { //获取到的内存地址为空 if(Param.Head == NULL || Param.Tail == NULL) { break; } if(strPos1 == NULL) { strPos1 = Param.Head; } //没有内容 没必要往下 if(strPos1 == Param.Cur) { break; } Steps = 2; SearchRet = SearchStrEx(strPos1 ,Param.Cur ,Param.Head ,Param.Tail ,(uint8_t*)"\r\n"); if(SearchRet.start == NULL || SearchRet.find == NULL) { SearchRet = SearchStrEx(strPos1 ,Param.Cur ,Param.Head ,Param.Tail ,(uint8_t*)"\r"); Steps = 1; } else if(SearchRet.start == NULL || SearchRet.find == NULL) { SearchRet = SearchStrEx(strPos1 ,Param.Cur ,Param.Head ,Param.Tail ,(uint8_t*)"\n"); Steps = 1; } if(SearchRet.start != NULL && SearchRet.find != NULL) { Index = 0; while(1) { if(NULL == gGsmResAnaysisList[Index].AnalysisCB) break; if(SearchStr(SearchRet.start ,SearchRet.find ,(uint8_t*)gGsmResAnaysisList[Index].ResPondes) != -1) { gGsmResAnaysisList[Index].AnalysisCB(SearchRet.start ,SearchRet.find - SearchRet.start); break; } Index++; } if(strPos1 < Param.Cur) { strPos1 = SearchRet.find + Steps; } else { strPos1 = Param.Cur; } } else { strPos1 = Param.Cur; }/*edn of if(SearchRet.start != NULL)*/ }while(1); } 六、作品演示 请上传您的作品的功能演示到腾讯视频,并编辑到本楼(或附上视频链接)。按要求上传视频可获得10分,具体详见活动规则。 <embed src="https://imgcache.qq.com/tencentvideo_v1/playerv3/TPout.swf?max_age=86400&v=20161117&vid=o0758idf3c0&auto=0" allowFullScreen="true" quality="high" width="480" height="400" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash"></embed> https://v.qq.com/x/page/o0758idf3c0.html 七、总结 例如您在完成该作品过程中的一些体会、碰到的技术问题或调试经验、作品的未来规划,及对我们主办方的建议和意见等。
非常感谢主办方提供的这样一个技术交流平台,希望后续能继续举办类似的活动。在这样一个平台下能了较为全面的了解当前的电子产品设计方向与主流技术。在这样一个平台上可以学习更多的设计技巧与思路。每个参赛者都从各个方面、各类产品中不同程度的分享了自己所在领域的特色技术。这间接或直接的推进了电子技术的进一步发展,也让更多的专业人士、电子爱好者参与到了电子设计中。这也使得这个群体从各个层面上体验、体会到了电子设计的乐趣与价值。
为方便各位参考特分享了本系统核心代码!但同时郑重声明:未经本人许可,其它人不能将以上设计和源码直接使用到商业产品中。 |
|||
|
发表于2018-05-09 11:36:22
|
显示全部楼层
3#
|
|||
|
发表于2018-08-17 14:57:35
|
显示全部楼层
6#
非常感谢主办方提供的技术交流平台,希望后续能继续举办类似的活动。这个平台能较为全面的了解当前的电子产品设计方向与主流技术。这个平台上可以学习到更多的设计技巧与思路。每个参赛者都从各个方面、各类产品中不同程度的分享了自己所在领域的特色技术。这间接或直接的推进了电子技术的进一步发展,也让更多的专业人士、电子爱好者参与到了电子设计中。这也使得这个群体从各个层面上体验、体会到了电子设计的乐趣与价值。
|
|||
|
发表于2018-08-18 10:14:18
|
显示全部楼层
7#
|
|||
|
发表于2018-08-20 09:58:38
|
显示全部楼层
8#
|
|||
|
发表于2018-08-22 11:08:06
|
显示全部楼层
9#
秒定功能介绍与AT指令
基于 EPO TM 功能,秒定功能额外增加了 Real-time 及 Reference-location 信息(参考位置的经纬度)。 它能帮助 GNSS 实现快速定位,减少模块在冷启动模式下的定位耗时。在将 EPO 数据传送到 GNSS 后, 参考位置信息会紧接着被传送到 GNSS 中。 备注 1. Real time 的精度要求为+/-3 秒。 2. Reference-location 的精度要求为+/-20km。 3. Reference-location 可以利用移远通信提供的基站定位功能来获取,也可以使用上一次 GNSS 定位后得到的经纬度信息。 4. Reference-location 的设置范围:北纬-90°~90°,东经-180°~180°。具体格式可参考 文档 [3] 。 3.3.1. 流程概述 模块开机后,可以基于 EPO TM 运行流程一或流程二,在使能 EPO TM (AT+QGNSSEPO=1)之前,设置 Reference-location 信息。具体可参考 3.3.2 章节 和 3.3.3 章节 (基于 EPO TM 运行流程二)。 3.3.2. AT 流程范例 AT+QIFGCNT=2 // 设置 PDP context OK AT+QICSGP=1,”CMNET” // 设置 APN OK AT+CREG?;+CGREG? // 检查网络状态 +CREG: 0,2 +CGREG: 0,2 OK AT+CREG?;+CGREG? // 检查网络状态 +CREG: 0,1 +CGREG: 0,1 OK AT+QGNSSTS? // 查询时间同步状态 +QGNSSTS: 1 // 时间同步完成 OK AT+QGREFLOC=31.844376,117.204536 // 为秒定功能设置 Reference-location 信息 OK AT+QGNSSEPO=1 // 使能 EPO TM 功能 OK AT+QGNSSC=1 // 开启 GNSS 功能 OK AT+QGNSSRD? +QGNSSRD: $GNRMC,032220.291,V,,,,,0.00,0.00,140716,,,N*5D $GNVTG,0.00,T,,M,0.00,N,0.00,K,N*2C $GNGGA,032220.291,,,,,0,0,,,M,,M,,*5D $GPGSA,A,1,,,,,,,,,,,,,,,*1E $BDGSA,A,1,,,,,,,,,,,,,,,*0F $GPGSV,2,1,07,23,,,31,08,,,49,30,,,33,16,,,45*7E $GPGSV,2,2,07,07,,,44,27,,,49,26,,,43*72 $BDGSV,1,1,03,10,,,47,04,,,40,07,,,48*62 $GNGLL,,,,,032220.291,V,N*6F OK AT+QGNSSRD? +QGNSSRD: $GNRMC,032221.301,V,,,,,0.00,0.00,140716,,,N*54 $GNVTG,0.00,T,,M,0.00,N,0.00,K,N*2C $GNGGA,032221.301,,,,,0,0,,,M,,M,,*54 $GPGSA,A,1,,,,,,,,,,,,,,,*1E $BDGSA,A,1,,,,,,,,,,,,,,,*0F $GPGSV,2,1,07,23,,,31,08,,,49,30,,,33,16,,,45*7E $GPGSV,2,2,07,07,,,44,27,,,49,26,,,43*72 $BDGSV,1,1,03,10,,,47,04,,,40,07,,,48*62 $GNGLL,,,,,032221.301,V,N*66 OK … AT+QGNSSRD? +QGNSSRD: $GNRMC,032225.306,A,3150.7859,N,11711.9215,E,0.06,204.08,140716,,,A*70 $GNVTG,204.08,T,,M,0.06,N,0.11,K,A*2B $GNGGA,032225.306,3150.7859,N,11711.9215,E,1,9,1.54,35.0,M,0.0,M,,*40 $GPGSA,A,3,08,30,16,07,27,26,,,,,,,1.75,1.54,0.83*00 $BDGSA,A,3,10,04,07,,,,,,,,,,1.75,1.54,0.83*19 $GPGSV,3,1,09,08,70,004,49,07,55,309,44,42,45,141,,27,38,040,49*7D $GPGSV,3,2,09,16,28,079,45,30,28,317,31,26,06,096,43,193,,,*7C $GPGSV,3,3,09,23,,,28*7B $BDGSV,1,1,03,07,74,113,48,10,74,329,47,04,32,119,40*51 $GNGLL,3150.7859,N,11711.9215,E,032225.306,A,A*4A OK AT+QGNSSC=0 OK 3.3.3. 代码逻辑流程图 START AT+CREG? AT+CGREG? AT+QIFGCNT=2 AT+QICSGP=1,<APN>,<user_name>,<passwd> AT+QGNSSTS? AT+QGNSSRD? AT+QGREFLOC=<ref_latitude>,<ref_longitude> AT+QGNSSEPO=1 AT+QGNSSC=1 AT+QNTP=<SERVER>[,<port>] |
|||
|
发表于2018-08-22 11:55:05
|
显示全部楼层
11#
有用的,用之前要输入上次最后一次定位的经纬度或者是输入基站定位转换后的位置。一般在6~14S之间可以定位。如果不用秒定功能,泠启动首次定位一般都要大于1分钟
|
|