UNICOM是德国CSM的工业编程器,主要用于产线的产品程序下载。
很多项目,都指定选用他作为下载工具。
这个产品国内的资料比较少,本人有幸用过这个产品做项目,写一篇概述性的东西为后人指一条方向:
---------------------------------------------------------------------
网址如下:https://www.csm.de/en/products/programming-tools
现在用的都是UNICOM3,之前还有UNICOM2,已经停产了。
大约在3000欧左右(2019年参考,实际价格要根据具体配置)
我先概述一下这个UNICOM是什么东西,工作原理是什么,明白以后你就很容易的理解它了。
1、我们明确一下什么叫程序下载。程序本身都是以二进制的形式存在产品“硬盘”里的。
所谓程序烧录(程序下载)就是以某种方式通知产品,告诉它往自己“硬盘”里面的哪个地址里写什么数据。数据核心就是地址+数据。UNICOM就是利用这个原理,告诉产品烧录首地址是多少(比如0xFF00),数据长度是多少(比如:0x05),然后发送对应长度的Byte数据(比如:0x01,0x02,0x03,0x04,0x05)。产品就会从地址0xFF00地址开始,分别写入0x01,0x02,0x03,0x04,0x05的数据,长度为5。
2、市面上产品的烧录方式有两种,一种叫裸片烧录,一种叫带“Bios”烧录。
裸片烧录:芯片从芯片厂商那里出厂,里面是没有程序的。我们称之为裸片。这种情况下,只能使用芯片厂家提供的烧录方式,就像烧51单片机一样,用JTAG啦、串口啦之类的。
带“Bios”烧录:就是芯片已经被安装在PCB上,且已经烧录了Bios程序(你可以理解为电脑主板上的Bios)。这个Bios程序是每个芯片使用厂商子写的通用版程序。到后端产线上会根据具体的型号,对这个PCB进行二次烧录,由于有了Bios的支持,第二次烧录就不需要用芯片厂商提供的方式了,可以通过任何方式实现,比如K-LINE,LIN,CAN都可以。因为这些通讯方法都能够告诉产品,往什么地址里写什么数据。
绝大多数的工厂烧录均是“带Bios烧录”,UNICOM也大多用于次方案。
3、UNICOM的运行原理。
UNICOM本身是个硬件+操作系统的结构,这里的操作系统叫ucbase(应该是CSM公司自己做的操作系统)。你可以理解成手机和安装的关系,只是UCBASE没有操作界面,需要通过发送指令控制。ucbase运行在UNICOM中(一般UNICOM出厂都会预先安装好ucbase操作系统),其本身并没有烧录功能,它只是起到硬盘管理,程序调度等功能。(就像你只有手机+安卓系统,但是没有APP,你点不了外卖一样)。如果要实现下载烧录,必须请CSM公司为你专门开发一款针对你项目的下载协议的定制的软件模块(付费),这个模块在windows系统内的存在形式是.smod文件。UNICOM本身有一块硬盘,在使用这个模块前,你需要根据ucbase协议(文件管理部分,用串口实现),将.smod文件下载到UNICOM的硬盘中,然后使用ucbase的模块加载指令,通知ucbase加载你下载的smod模块,这才能实现你项目中定制的下载功能。(类似于先把APP程序安装在安卓系统中,然后再启动它)。
你的产品下载程序本身也是一个文件,比如飞思卡尔芯片一般用S19文件。同样的,你需要将S19文件进行解析,下载到UNICOM的硬盘中,通过指令通知你的smod模块,让他使用你指定的已经存放于UNICOM硬盘中的文件进行下载。
4、重要文档
这个东西的文档比较多,主要看三篇文档(文档去官网上下,具体文件名称可能根据版本有细微变化):
uc3_d_hardware.pdf:介绍UNICOM的接口定义的,这个要看。
ucbase.pdf:这个要看,这个文档是介绍如何使用UNICOM的通讯协议的。
smod的说明文档:每个项目都不同,和CSM要。
其余文档可以不看。