分享

ATMEL SKT600开发板的“另类”体验

 启云_9137 2018-03-02


STK600开发套件有相当大的辅助开发价值,这是笔者见过评估AVR MCU的最全方位的工具了,估计曾经有那么一段时间把多少单纯的小朋友带到AVR的世界,从此一发不可收拾,半身蹉跎于AVR,应证了“为AVR生,为 AVR死”,这真是罪魁祸首。但是,这世界同样不缺少那啥来着“牡丹花下死,做鬼也风流',笔者同样愿意当一个”被虐的黄盖“,去尝试下STK600开发套件更多的功能。


串口


说到串口,在电子行业摸爬滚打的小伙伴基本都不陌生,笔者也大有”这也太小儿科的思想“,没想到一上来就碰钉子了,首先,STK600开发套件中并 没有为你准备5星级服务,在你使用各个功能的时候你会发现缺斤少两的现象,就说这RS232串口,需要自己额外准备一根9-pin的D-SUB接口线(一 头公头、一头母头)。


串口的例程可以在Atmel Studio6.1中找到,这里笔者编译、下载了一个UART interrupt example for the ATmega2560例程。问题又来,波特率没有明说该设置多少,笔者是在代码中找到的,可能是Atmel公司想教我们一个道理“自己动手,方能丰衣足 食。”可惜笔者未能好好参透,还是喜欢一条龙服务,是不是有点不上进啊。


打开超级终端,设置参数,无论如何操作,超级终端都无信息打印,急得团团转的时候看到串口原理框图顿时泪奔,这不是坑爹嘛,这RX、TX信号线都没连上MCU,跟MCU半点关系都没。


但这下至少有方向了,首先需要让RX、TX建立跟MCU Atmega2560之间的联系。


RS232的备用接口好找,问题是不知道怎么跟MCU的信号线相连,还需要查找ATMEGA2560的datasheet,很麻烦,但是木有别的办法。


其实操作还是很简单方便,只需知道方法。按照SPEC指示,将RX、TX信号线正确连接


这下万事俱备了,默数3、2、1上电


Bingo!


原本代码中设置输出打印的是'Hello,World!'太腻味了,笔者在代码中查看波特率设置的时候顺手改成了'Hello,eeboard',看起来舒服多了...


CAN控制器局域网络


CAN相比串口来说,没能达到耳熟能详的地步,但是就其地位,也是一方诸侯,究其原因,它掌控着汽车上的通讯系统,你能想象现在没有汽车的样子吗? 这下我们不得不带着虔诚的态度去了解下它的背景。CAN总线由德国BOSCH公司开发出,一开始主要应用于汽车工业,但是因为其突出的特点,高性能、高可 靠性,现在广泛应用在机械工业,数控机床,医疗器械等更多的领域。有点类似“无心插柳柳成荫”的样子。


CAN主要的三层结构为:物理层、数据链路层、应用层。


现在再回头来看STK600,其也搭载了一个CAN模块电路。


CAN收发器是Atmel公司自家的产品 ATA6660,支持差分串行总线标准


在STK600开发板中实际应用


通过Atmel 自家设计的 ATA6660 CAN收发器,电路变得再为简单不过了,只需搭载几个电阻电路,一切就顺理成章的完成了。怪不得现在都说软件工程师吃香,硬件电路设计工程师都快没饭吃 了。。。当然,这个是只是玩笑,我们来看看CAN模块电路中的几个特殊接口TERM、SPLIT、SLOPE CTRL是不是另有玄机。


  • TERM:在CAN波特率大于100 Kb/s,需要连接跳帽,这相当于在CAN-H和CAN-L信号线间加了一个124欧姆的电阻

  • SPLIT:此跳帽主要是将CAN-H、CAN-L信号上拉

  • SLOPE CTRL:此跳帽无论连接哪个位置都是将RS信号下拉,以调整CAN信号斜率以及防止信号瞬变

有些遗憾,Atmel Studio6.1没有提供针对ATMEGA2560的CAN例程,无法实现CAN功能的演示,颇为失望。


LIN总线


汽车的“廉价”导致了家用汽车的普及,可能在某些城市,上班出行用到的交通工具又回到了绿色环保的自行车,方便快捷。而专门针对汽车的CAN总线通 讯系统在一些廉价的汽车上似乎有些大材小用,于是,应运而生了LIN总线,这是CAN总线的辅助扩展。你也可以理解为LIN总线是CAN总线的小跟班,基 本不需要硬件基础,LIN总线硬件的实现可以是基于普通的串行通信接口(SCI),甚至在子节点中可以用普通I/O口加上定时器进行模拟。它的存在,无疑 是在廉价汽车上性价比高,比CAN总线更加适用。


STK600开发套件使用的LIN收发器为Atmel的ATA6661,支持LIN 2.0规范,紧挨着RS232串口,其待遇可见一般,十足是个跟班的命。


ATA6661外部接口很少,同样,在STK600开发板中的电路也相对要简单


在搭载设备板的STK600开发板上,其应用在LIN总线既可以作为主设备,又可作为从设备,而在总线上运行的应用作为主设备时必须连接M LIN跳帽,将LIN信号上拉至BAT。BAT的电压要求5~12V之间,而且必须从外部供电。


通过另一端的6PIN接口座,可以连接MCU,通常MCU通过UART来实现LIN总线传输,需要注意的是NSLP信号线必须接高电平确保LIN总线输出时不会进入睡眠模式。


随着汽车行业的发展,CAN总线和LIN总线可以说是相互依存的,只是说LIN相对应用范围狭窄,专注于汽车电子,而CAN总线发展的规模宏大,涉足行业越来越广阔。


小结


主要介绍了STK600开发套件上串口、CAN总线以及LIN总线的功能,这三者都是目前在 行业应用广泛的接口,CAN总线和LIN总线相互依存,LIN总线的实现又可以依托串口来实现,原本为汽车电子行业而诞生的CAN总线已经扩展到各行各 业,而针对汽车电子而生的LIN总线在某些方面有着CAN总线无法比拟的性价比,大有青出于蓝而胜于蓝的趋势。而串口对于我们来说虽然一如既往,平平淡 淡,但却真真切切无法被取代。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多