查看: 8704|回复: 10

GD450小红板评测&单车智能锁简单方案设计

  [复制链接]
  • TA的每日心情
    奋斗
    2021-7-30 15:17
  • 签到天数: 576 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2017-6-17 22:29:10 | 显示全部楼层 |阅读模式
    分享到:
    一、入手简单评测
    GD450小红板是GigaDevice去年推出的Cortex-M4内核的高端系列MCUGD450测试版,高达200MHz的主频,纵观同系列的M4内核MCU,单从主频上,没几家达到了200MHz,当然这跟众多因素有关,但是,不管怎么说GD这个系列达到了。同时带了的CoreMark的673(官方)高分。不同于常常用来对比的ST系列,GD450不仅在主频上有所提高,其还内置了独立的48MHzUSB专用的振荡器,不仅省略了一颗外置晶振,也更好的解决了USB对时钟的高要求,ST的部分MCU在USB的使用时确实有点不方便!同时GD450提供了两路OTG接口,包括一路高速(High Speed,480Mbps)。
    001.png
          GD450小红板,依旧使用了GD之前的设计风格,板载的芯片具体型号是GD450VET6,引出了全部I/O,方便用户的设计验证。板载了GD-Link符合CMSIS-DAP下载/调试协议以及一路串口使用了芯片的串口3PD8PD9),外置三个用户按键(一个weak Up按键)和三个同色LED。要说给小红板设计一点个人意见,其实可以使用三色(GRBLED代替独立的同色LED,增加一个USB全速外设接口,再增加一个SPI接口的存储芯片,这样可玩的可能会更多一点,也不失加个传感器?同时建议GD的引脚分布图能够像TI那样给个指导手册?
          再来看看资料手册方面,针对该小板GD给了较详细的入手介绍资料,还有keil开发使用的芯片底层安装包,不知道什么时候GD这样的资料能够直接在MDK的官网下载。同时给了一个基于trochili嵌入式OSexample,使用了宏定义划分了不同的例程。没有像ST那样单个例程一个目录,毕竟keil不支持多个工程,使用宏定义也不失为一种解决方式。
          好了,关于GD450小红板的介绍到先此为止,更详细的介绍看其官网。
    二、简单单车智能锁方案分析
          共享单车的出现确实带了极大的方便,本次方案的设计参考的功能是比较完善的小橙的方案,支持远程控制、远程监控、GPS定位、蓝牙控制以及报警等功能。由于本人对电源的设计不太了解,这里就不添加太阳能的电源设计了,使用LED模拟电子锁的打开以及闭合。由于对安卓的APP开发不了,这里的蓝牙数据使用bel tools测试工具模拟,GPRS数据使用本地TCP工具模拟控制。所以标题上也加上了简单方案设计!
          根据上述的方案,以下是本次设计的设计框图。
                                   002.png
    三、方案硬件选择及搭建
          虽然进入了4G网络时代,5G也快来临了,但是使用时间最长的2G网络并没有消失,同时具有覆盖更广的优点,因为单车的远程控制和监控并不需要太多的数据,同时考虑到成本,所以2G模块还是当前大部分智能锁的首选方案,本方案使用的也是2G模块sim800C。关于sim800C的更多介绍,参考附件sim800C手册介绍。
          在国内,北斗的使用越来越多了,支持国货嘛。不过GPS使用量还是很多的,同时GPS的产品更加成熟,这里选用的是常见的GPS模块xxx。关于这两个模块,同类市场上也有较多的方案推出,也有集合GPRSGPS、蓝牙(主要是蓝牙3.0)等一体的芯片方案,但多是通过AT命令进行通信,所以这里不再去讨论他们的优劣,同时身边也只有这两个模块,所以这里只是用分立模块。
          之前也有提及,上述模块支持的更多是蓝牙3.0,通过SPP profile连接通信,也是AT命令和MCU通信。这里选用了TI的蓝牙4.0模块CC2541,直接和手机进行透传。原因很简单,方便!同时。因为本次设计都是选用的模块搭建的,蓝牙也就不例外了。
           最后看下传感器的方案吧,传感器在检测非法移动,以及是否停放稳妥等可以检测使用,并结合报警等提示使用,单车上使用的是蜂鸣器提醒,这里直接使用LED替代了。这里选择MPU6050六轴传感器。
          电源这里直接使用5v/4A稳压电压,3.3v使用LDO降压使用。
          硬件清单:
      
    项目
      
    选型
    接口
    主要参数
    MCU
    GD450
    -
    200M主频
    2G
    SIM800C
    UART
    支持四频段
    GPS
    Xxx
    UART
    精度<5m
    传感器
    MPU6050
    IIC
    六轴
    蓝牙4.0
    CC2541
    UART
    <1Mb/s
    锁开关状态
    LED(替代)
    IO
    -
    状态报警
    LED(替代)
    IO
    -
    电源
    外置AC-DC
    -
    5V/4A


        组成照:
        为了方便验证,这里直接选用各个模块,通过杜邦线连接了。
    003.png

    游客,如果您要查看本帖隐藏内容请回复
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2021-7-30 15:17
  • 签到天数: 576 天

    连续签到: 1 天

    [LV.9]以坛为家II

     楼主| 发表于 2017-6-17 22:54:00 | 显示全部楼层
    四、软件方案设计
          本次设计使用的是FreeRTOS作为嵌入式OS,同时GD450STM32F4在兼容性上有了较大的优化,为了节省时间,这里将直接使用ST的库作为本次开发的开发库。
    4.1  2G模块设计:
          1)、2G模块控制设计思路:2G模块采用的是通过AT命令和MCU通信,AT命令的结束符都是“\r\n”,无论是发送还是接收,都会以该结束符结束。串口接收要么是单字符,要么是指定多字符接收(DMA),所以就有两种方案得到本次接收的字符串,一是单字符接收并判断字符是否含有为“\r\n”,如果有,那么结束本次字符串的拼接,并存储,同时指定一个计数器,不是该字符则累加,作为字符串的长度,同时在拼接结束要在字符串的末尾加上'\0'字符作为字符串的结束符。该方法的缺点就是每个接收的字符串都将调用一次中断进行判定。二是利用DMA的循环接收模式,结合DMA的缓冲区,进行实时的接收并在接收的缓冲区进行判定,根源跟上述类似,好处是不再需要那么多中断处理,直接使用子任务处理即可。
          2G模块接收子任务软件设计流程图:(这里给出单字符处理流程)
    004.png
        所以,AT命令发送时,将带有该命令的正确返回值,以及超时时间。如SIM800C的初始化:
    005.png
    各参数:module_check_with_cmd(命令,有效返回值,类型,串口发送延时,命令等待延时)
    4.2  GPS软件设计:
          GPS数据格式是符合NMEA-0183协议,数据都是以“$”作为开始符,以“\r\n”作为结束符。数据的处理跟2G还是挺像的,不过这里的处理要简单的多,因为没有数据收发了,直接接收就可以了,下面就接收处理流程,这里处理不足之处就是每过来一个字符将进入中断判断,所以这里将GPS的数据发送频率降低到1Hz以降低中断频率。
          GPS模块任务软件流程:
    006.png
       设计代码:
    007.png
           其次就是将读取到的字符串,做截取转换处理了。这里根据的就是NMEA-0183协议,利用‘,’将各个字段进行分割,对各字段进行数据或字符的转换。分割的方法有很多,如:    首先根据GPGLL所在字符串的字段6判断定位状态是否有效。再根据‘,’利用strstr函数取得各个字符串的所在字段的首尾位置,截取后再转换为对应的有效数据或字符即可。NMEA-0183协议见附件。
    4.3 蓝牙软件设计:
          使用的是蓝牙透传模块,这里的通信协议相比较之前的AT命令,灵活性就大的多了。可能有人也会说这个模块不也使用AT吗?确实,这里的AT只是用于配置,一旦跟手机连接上,则进入透传模式,此时你再发“AT”,则直接发送到手机端了。所以这里的协议一般都是根据自己需要,自己定义。那么怎么知道蓝牙有没有连接上呢?一般蓝牙模块都有个状态LED用于判断是否连接上,在TI的蓝牙协议栈中,这个设置其实也比较简单的,同时部分蓝牙模块也提供了一个IO口状态翻转,可以使用中断方便通知MCU是否已经连接上。
          由于使用的蓝牙模块,没有外置IO引脚可以通知MCU蓝牙是否已经连接,这里使用AT命令周期去测试蓝牙模块,这里规定如果手机端接收到“AT\r\n”命令后,返回该命令则表示蓝牙连接正常,若果MCU端返回时是“OK\r\n”,则表示蓝牙已经断开,进入了AT命令模式。同时根据蓝牙4.0协议,这里规定一旦蓝牙连接上,则每次收发双方的数据个数规定为20个字节,同时规定下位机发送的以字节“0xFB,0xFB”位开头,上位机发送以“0xAB,0xAB”为开头。
          处理流程图如下:
    008.png
        代码如下:
    009.png
    其次就是收发数据的协议定义,篇幅有限这里不再详细介绍数据间的处理情况。
    4.4 传感器软件设计:
        MPU6050的数据处理各个网站介绍的比较多了,这里就不在介绍他们的数据合成和转换了,这里对数据的处理知识简单的实现几个停车状态的判断,并没有对骑行等运动状态进行判断。


    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-4-17 09:37
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2018-4-17 09:26:51 | 显示全部楼层
    一直好奇锁是怎么实现的,谢楼主。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2018-5-4 06:11:31 来自手机 | 显示全部楼层
    就这水平,太low了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-9-19 08:59
  • 签到天数: 7 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2018-5-7 09:46:33 | 显示全部楼层
    看看,学习下。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2018-5-7 11:57:13 | 显示全部楼层
    不错看看啊啊啊啊啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2022-6-6 16:57
  • 签到天数: 191 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2018-6-20 13:49:39 | 显示全部楼层
    学习下学习下学习下
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2022-6-10 15:29
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2019-6-1 21:21:42 | 显示全部楼层
    有点好奇!看看!!!!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-7-5 23:54
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2021-7-4 21:06:34 | 显示全部楼层
    非常详细谢谢
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-11-15 02:58 , Processed in 0.204176 second(s), 34 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.