RT1064系列核心板

尊敬的卓老师:您好!



卓老师这几天可能都在忙关于今年国赛的事,很抱歉在这个时间点还是要来耽误一下卓老师的时间来看学生的一封邮件。


其实我本计划国赛的时候到山大威海,一是想和卓老师交流一下我们今年在智能车竞赛上所做的服务工作,以及我们团队近期即将制作完成的RT1064系列核心板以及其用于二次开发的库文件;


二是想到国赛现场对我们的传感器、核心板等产品的使用情况做个回访,希望能把这些为比赛服务的基本工作做得更好。但是因为其他工作时间冲突,实在没法到现场做这个工作,所以今年以一封邮件的方式给卓老师做个简报。



一、结合第十四届智能汽车竞赛的规则,我们在智能车竞赛推广中大致做了以下主要工作:


1、  规则解读,参赛建议分析(感谢卓老师转发我们在智能车制作论坛上发的帖子到公众号),能够让车友们更快速和清晰的认识和理解到今年比赛规则的变化。


2、  LPC54606核心板开发,LPC54606库开发及开源,LPC系列芯片使用推广,虽然赞助单位NXP没有像当年强推K60和KEA那样强制使用LPC,但在我们的推广后还是很多车友选择了使用这款单片机。因为K60系列芯片价格猛涨,而且货源紧张,翻新芯片较多,质量得不到保障,所以我们做了这款核心板来替代K60系列,LPC的性能与K66性能相当,价格却便宜很多,所以LPC能有机会得到大家的选择。



3、  关于三轮改装和越野车模的选择、改装的建议,并做了很多相关测试,并且将测试过程制作成视频展示给车友参考,给他们的选择提供一些建议,避免花冤枉钱买几个车模来挨个试的情况。


4、  关于变形组直立和三轮两种状态变形的技术分析,并用文字描述的方式提供了一种控制方法,供参赛选手们参考学习。


5、  RT1021 核心板开发,“逐飞RT1021库”开发及开源。因为今年比赛规则明确说明不再遮光,参赛选手需要自己处理更复杂的环境,所以针对“阳光算法”的出现,大家对更高性能的MCU有了很大的兴趣,但是市面上并没有方便大家使用的开源库供大家使用,所以我们来做了这个工作,并且得到了大家认可,好几个分赛区第一的车队便使用了我们的这款核心板。



6、  分析“阳光算法”,在小伙伴们乐此不疲的到卓老师公众号打卡阳光算法后,我们对此做了一点分析,这个分析的来源是因为今年参赛的小伙伴用逐飞的总钻风摄像头解决了大部分光线问题,在实验室基本能做到开窗户有阳光照射到赛道的情况下依旧能稳定的识别赛道,并且将他的方法大致分享给了我们,因此我们从对总钻风摄像头的使用这个角度来分享了“阳光算法”简单的实现,不出意料,这篇分享帖子得到了很多车友的认可,里面的方法也得到了很多车友的使用和进一步优化。


7、  四川省大学生智能汽车竞赛的组织、协办与赞助,这个细节就不多说了,年年都在办,我们依然用最饱满的热情为本次省赛的圆满完成做了我们能做的所有保障和服务工作。



二、关于我们近期即将完成的RT1064核心板的开发及其库文件的开发和开源:


首先,我们为什么要做这个工作,近年NXP公司推出了RT超高主频的M7内核跨界MCU。


其超高的性能吸引了众多的关注,并且价格相较于现在的K60FX/K66FX等单片机来说价格也要便宜不少。


虽然有很多同学希望能用上强大的RT系列MCU,但是由于刚推出的芯片一般来说资料较少,也没有较为完整的代码库,对于一般的同学来说想轻易上手是比较困难的,而且RT系列有上电时序的要求,这样更是难上加难。因此我们决定推出RT系列的核心板,使得大家可以较为轻松的使用RT系列,当然这样有非常有利于NXP想推广RT系列的计划。


权衡了制作成本以及后期维修费用问题,我们首先推出了RT1021核心板,也开源了相关的代码库,对于有一定硬件能力的基本上可以自己制作核心板(上面第一部分已经提到了我们所做的这个工作)。



RT1021比较适合传统用户或者想自己制作核心板的用户,如果想需求更加强大性能的用户可以使用RT1064,但是由于封装为BGA的,对于一般用户来说很难自己搞定。


因此我们决定推出了RT1064的核心板,相较于RT1021频率提升100M,cache翻倍,并且内置了4M串行flash,IO数量也多了不少。


为了尽量发挥出单片机的性能,我们在核心板上加上了SDRAM,不同于一般的核心板处理方式(一般的主要用于保存变量而已),我们加入SDRAM之后,对我们的代码库进行了修改使得代码上电之后自动加载程序(包含中断+中断向量表+普通程序)到SDRAM进行执行,在程序大于cache之后,在sdram中运行程序比在flash中运行程序要快很多,具体的数据NXP官方有一个较为完善的文档说明(该文档由NXP的FAE所提供的,我们在开发过程中和NXP的RT产品部有很多咨询、沟通,力争做一款性能强大且方便使用的核心板)。

 


由于RT有上电时序的问题,容易会出现内部DCDC不启动的问题,但是RT系列的芯片没有其他指示引脚能够直观的提示DCDC没有启动,因此我们在核心板上设计了一个电路来检测内部DCDC是否正常输出电压然后驱动内核指示灯,如果DCDC正常输出则由设计的硬件电路驱动LED点亮,这样就可以很方便的让使用者确认当前的DCDC是否正常启动。

 

我们对RT1064核心板进行了多次测试,也提前为大家趟了很多坑(毕竟是新片子),并且这款核心板在NXP的FAE帮助下做了高低温测试(-40℃至75℃),一次性通过。这也最大程度上验证了核心板在各种环境下的稳定性。

 


对于软件部分我们做了更多的优化:


1、  例如程序加载到SDRAM中运行(包含中断向量表与中断函数),可以使得代码量超过cache之后,代码的运行速度要比flash中快的多。


2、  库的底层基于SDK进行二次封装,专为智能车竞赛的应用进行精心编写,使得学生用户用起来更加顺手,稍微有基础的基本上一天之内完全可以熟悉所有的模块。我们随后将会编写一个详细的入门教程能使更多的人能够轻易的学会RT并用RT来做开发工作。


3、  对于我们的库,和以往开源的库一样,是支持IAR和MDK两个软件打开的,这样极大的方便了学生根据自己的爱好选择IDE,而不必受到例程只支持某一个IDE而去使用一个自己不熟悉的IDE,适配大家的两种使用习惯。


4、  代码库支持RT1064特有的快速GPIO,可以实现最高150M的IO翻转速率。


5、  代码库支持RT1064特有的ROMAPI,用于操作内部flash非常简便。

 

RT1064这么强大,那么用在智能车竞赛上是否真的合适呢,是否大材小用了呢,其实不然,比如我们要适配一款彩色摄像头用于赛道识别,那么RT1064将会是绝佳的选择,而传统的MCU就难堪此任,第三点就是我们在做RT开发的同时也在做的一款摄像头的开发。

 


三、关于彩色摄像头的研发:


我们从去年以及今年的市场调研情况不难发现,参赛选手对摄像头的需求基本上从硬件二值化的简单摄像头过度到了以逐飞推出的总钻风摄像头为代表的灰度摄像头,这样可以获取到更丰富的赛道信息,有利于参赛选手编写适应性更好的算法。


另外从今年的比赛规则也可以看出智能车的比赛越来越往更加智能化发展,需要小车更加的智能化(虽然今年对智能化要求的提高,规则难度的提高降低了完成率。


但从另一个角度来看这也是智能车竞赛发展必须要跨越的阵痛,不能因噎废食,不能因为结果看起来没那么好看就认为比赛朝更智能化方向发展是错误的,一切进步都来源于求变)。那么无疑需要小车能获得更多元的数据,所以灰度摄像头从某种程度上讲也不一定能满足使用要求。



其实已经有很多同学在寻求一款比较合适的彩色摄像头了,也有很多同学在咨询我们是否会推出一款彩色摄像头,他们希望通过颜色识别来增加系统的鲁棒性,但是市面上可供选择的彩色摄像头的确实不多。


最常用的一款是OV7725,但是很多同学反映效果差、不理想,用起来也一点不方便。其实我们早几年就一直在寻求找到一款满意的彩色CMOS,可是一直没有找到合适的。


由于我们的原则是宁缺毋滥,做产品一定要做精品,不去随便做个摄像头忽悠车友去用,去只追求利益,所以我们那么久宁愿不做也不随便选择一款来做。期间我们测试了不下10种彩色CMOS(安森美、OV、索尼等等),但是大多数总有一些参数不能让我们满意,比如其中很多人表示MT9V032不就有彩色芯片么?



正好和我们的总钻风是一个系列的,的确,彩色芯片是有,但是想要获得彩色图像需要自己做插值还原,这个过程比较特殊,导致不能将摄像头图像进行压缩输出,进而导致分辨率过大,因此还原的时间就会非常的长,完全不适合应用于智能车竞赛的应用场景。


一直到最近一段时间终于找到一个款CMOS芯片能够让我们比较满意,因此我们打算推出这款彩色摄像头以供参赛学生使用。而由于彩色摄像头的像素时钟频率比较高(50帧图像时的PCLK有54M),所以对CMOS的供电,以及摄像头信号的完整性提出了更高的要求。


为了方便同学们在前期学习摄像头原理,以及自己做主板之后对比图像效果的区别,因此RT1064的核心板专门保留了CSI接口,减少新手在学习摄像头初期时的阻碍。



今年很多做信标组的同学反映用openmv的大部分都完赛了,主要原因就在于openmv使用的是彩色,然后对颜色进行识别,这就不单纯的使用一个灰度摄像头的效果好了很多,抗干扰能力强了不少,因此完赛率非常不错。


但是这部分同学也表达了一个不满的地方,就是openmv识别的速度不是特别的快。他们希望能有一个效果更好的彩色然后自己做识别。同时也有不少人认为直接使用openmv减少了图像识别的过程,虽然减少了工作量,但是也少了比赛乐趣,不利于自己学习更多的算法,也不利于锻炼自己的思维,毕竟openmv已经干了很多工作。


PS:其实关于openmv可以直接用在比赛中这个规则学生有些不解,因为普通组别不同于室外光电创意组,可以使用一些现成的模块来完成更为复杂的识别工作,普通组别一直以来强调的赛道信息需要自行处理,不能用带有赛道信息处理的摄像头作为传感器,这个规则和今年openmv可以直接用于比赛是相互矛盾的,此处有点小疑问

 


今年的工作简报和近期学生这边的产品计划大概这样,有点啰嗦,很抱歉耽误了卓老师的时间,给卓老师做这个简报的目的是因为我们作为这个比赛的第三方服务商,同时也是四川省赛的官方协办单位,需要紧跟比赛规则和方向,并且绝对尊重比赛规则,我们从未也不会超越红线,只是做一些基础传感器及核心板的开发,保障车友使用更好的传感器和更稳定的核心板。


之前也不止一次和卓老师表达过我们的做事态度和对某些商家代做之事的嗤之以鼻孔的态度。其实单从我们创业团队发展的角度来讲,那种超越红线的做法就是自寻死路,我们有正常的三观,有清晰的计划,我们想做的是符合竞赛规则的通用平台,目的是方便每年参赛的小白学习。


随着比赛难度一年一年的增加,其实每年的小白依旧那么白,并不是有些参加完比赛的同学认为的那样,后面的人就懂更多,他们依然需要入门学习资料,所以我们提供这样一个通用的学习平台,并且是开源的,大家都可以使用,并且我们认为得到使用者的正常价值观的认可,以及做符合比赛规则的工作才能更长久。



同时我们对本次我们开发的RT1064核心板和彩色摄像头这两款产品非常有信心,因为我们花了很长时间来将底层的基础工作做的很细致,我们定不会像某些商家的虚假宣传和肆意夸大来吸引小白的购买,在上面所有的前提下,还是想再次请求卓老师帮忙将我们的RT1064库及已经开源的RT1021库以及核心板推荐给NXP的田云峰经理(我不知道是否还是田云峰经理在负责相关推广工作),希望我们能作为第三方开发应用服务来帮助他们做RT系列控制器在智能车竞赛中的推广应用及其他商业领域的推广应用。


PS:根据我们对市场的调研,我们做的几款核心板和配套的开源库基本都得到了同学们的认可,其中KEA、LPC、RT1021从销量和同学们的口碑中也能说明问题,这三款在智能车竞赛这个应用场景中的销量都是稳居第一的。

 


四、最后还有几个关于规则问题需要再次咨询卓老师:


1、  之前有参赛学生在公众号上咨询过关于购买的RT系列核心板上有外置的SDRAM和FLASH是否能直接使用,当时的回复是可以直接使用。想再次确定下这种设计核心板是可以直接用于比赛的,因为我们的开发工作已经接近尾声,接下来就要开始生产了,万一这个规则又有变化就意味着我们的设计需要更改。


2、  鉴于RT系列+彩色摄像头的使用难度,我们专门在RT1064核心板上预留了CSI接口,由于彩色摄像头的像素时钟频率比较高(50帧图像时的PCLK有54M),所以对CMOS的供电,以及摄像头信号的完整性提出了更高的要求。


为了方便同学们在前期学习摄像头原理,以及自己做主板之后对比图像效果的区别,因此RT1064的核心板专门保留了CSI接口,减少新手在学习摄像头初期时的阻碍,避免一开始就掉入一堆问题中无法自拔,但是以往的规则中规定了购买的核心板上不允许有这类接口。



鉴于这个规则,我们是这么考虑的,我们在淘宝详情页和说明书中都会明确的写明提醒信息,告知使用这个核心板的学生在比赛中不能直接使用这些接口,而应该自己引出到主板进行使用。不知这样是否满足比赛规则?


之前也有类似核心板上的接口问题是这样处理的(比如OLED接口),只要没使用这个接口,这个核心板就可以直接用于比赛,这也是比赛规则人性化的一方面,这样可以在前期学习的时候更方便一点,同时学习完也不需要再花钱去购买没有这个接口的核心板,降低参赛成本,所以想咨询下我们基于以上目的的接口预留是否也适用于和OLED接口类似的处理方式。


只要正式比赛的时候不使用,就可以直接用这款核心板参赛,因为我们设计这个接口的有无倒是很方便,删掉即可,但是的确有点不方便新手入门,等他们学会了,自然知道去自己做这个接口到自己的板子上,所以想咨询下,基于以上考虑,我们预留了CSI接口的RT1064核心板是否可以直接用于比赛(正式比赛的时候不使用现成的接口)?



3、  我们在这款RT1064核心板上还专门预留了SD卡接口,其实关于SD卡,很早之前的规则开始说的是不允许有,后面又修正为正式比赛的时候不插SD卡即可,我思考之前这么限制大概是因为之前是不允许现场再改程序,现在比赛发展到可以现场调试程序,所以认为这个规则应该更新为允许带有SD卡。


其实SD卡这个功能只是在平时调车的时候有用处,比如将实时的赛道图像存储在SD卡中用于分析数据,用来调整自己的算法和参数,因为在线传图的难度更大,可操作性更低,所以想咨询我们预留了SD卡接口的RT1064核心板是否能直接用于比赛,还是说用于比赛时不插卡就行?


如果卓老师需要看我们RT1064的实物,我们可以将我们的样板寄送给卓老师,这样也可以更直观的看到我们的设计,以及判断其是否符合比赛规则,我们愿意为比赛更好更健康发展做更多我们能做好的工作,希望卓老师能给我们这个机会。如有考虑不周还请卓老师直接指出,最后,感谢卓老师看完这封邮件,期待您的回复。

 


最后的最后,期待智能车竞赛健康繁荣,愿智能车世界更美好!


敬礼!

   祝卓老师一切都好!                                     

奋斗青年:范兵

2019.08.19