目录

  • 1 模拟电子技术实践课程概况
    • 1.1 模拟电子技术课程标准
    • 1.2 三个代表性视频
    • 1.3 精品课程建设立项
    • 1.4 性质任务与计划
    • 1.5 电子元件感性认识
    • 1.6 常用仪器仪表
    • 1.7 师资与教学成果
  • 2 项目2 电子生日蜡烛控制电路
    • 2.1 任务1 认识三极管
    • 2.2 任务2 基本放大电路
      • 2.2.1 基本共射放大电路的组成
  • 3 项目1 直流稳压电源电路
    • 3.1 任务1 认识二极管
  • 4 基本放大电路
    • 4.1 任务一 共射极小信号放大电路
    • 4.2 任务二 共集电极放大电路测试
    • 4.3 任务三 共基极放大电路测试
    • 4.4 任务四 场效应管基本放大电路与测试
    • 4.5 任务五 负反馈放大电路测试
    • 4.6 知识点疑难问题讲解
  • 5 集成运算放大器
    • 5.1 任务一 差分放大电路与测试
    • 5.2 任务二 运算放大电路与测试
    • 5.3 任务三 电压比较器电路与测试
    • 5.4 知识点疑难问题讲解
  • 6 直流稳压电源
    • 6.1 任务一 变压器的基本特性与测试
    • 6.2 任务二 整流电路与测试
    • 6.3 任务三 滤波电路与测试
    • 6.4 任务四 稳压电路与测试
  • 7 功率放大电路
    • 7.1 任务一甲类放大电路与测试
    • 7.2 任务二乙类功率放大电路与测试
    • 7.3 任务三 甲乙类OCL和OTL电路与测试
    • 7.4 知识点疑难问题讲解
  • 8 项目六 信号产生电路
    • 8.1 任务一 LC/RC选频网络测试
    • 8.2 任务二 RC正弦波振荡器测试
    • 8.3 任务三 LC正弦波振荡器测试
    • 8.4 任务四 石英晶体振荡器测试
    • 8.5 任务五 非正弦信号发生电路
  • 9 模拟电子技术实践第二课堂
    • 9.1 经典之工程应用电路
    • 9.2 全国大学生电子设计大赛
    • 9.3 CAN/CANopen总线协议
    • 9.4 密脚芯片之焊接封装技术
  • 10 模拟电子技术课程实验
    • 10.1 项目一:二极管与三极管
    • 10.2 项目二:晶体管放大电路
    • 10.3 项目三:差动放大电路
    • 10.4 项目四:信号运算与滤波
    • 10.5 项目五:功率放大电路测试
    • 10.6 项目六:线性直流稳压电源
  • 11 模拟电子技术名师视频学习
    • 11.1 名师授课视频(二极管与三极管)
    • 11.2 名师授课视频(晶体管放大电路)
    • 11.3 名师授课视频(功率放大电路)
    • 11.4 名师授课视频(直流稳压电源)
    • 11.5 名师授课视频(负反馈与正反馈)
    • 11.6 名师授课视频(波形发生电路)
  • 12 模拟电子自测习题
    • 12.1 模拟自测题1及参考答案
    • 12.2 模拟自测题2及参考答案
    • 12.3 期末复习题1及参考答案
    • 12.4 期末复习题2及参考答案
  • 13 校企合作项目模拟电子电路
    • 13.1 常州合泰电机电器有限公司
    • 13.2 江苏仁源电气有限公司
    • 13.3 无锡金义博仪器科技有限公司
    • 13.4 上海技美科技有限公司
      • 13.4.1 RFID射频识别天线设计
      • 13.4.2 13.56MHz-PCB天线设计
      • 13.4.3 周立功公司天线设计
      • 13.4.4 技美仿UR通用型协作机器人
  • 14 电气自动化-电子CAD教学材料
    • 14.1 电气171/3/4教学计划
CAN/CANopen总线协议
                                                     CAN/CANopen总线协议

1. CANopen的起源,CANopen从何而来?

  德国Bosch公司于1983年研发CAN协议,用于汽车传动系统的网络通讯。之后称为国际标准ISO11898,目前CANopen由非营利组织CiA(CAN in Automaion)进行标准的起草及审核工作,基本的 CANopen 设备及通讯子协定定义在 CAN in Automation (CiA) draft standard 301. 中。针对个别设备的子协定以 CiA 301 为基础再进行扩充,如针对 I/O 模组的 CiA401 及针对运动控制的 CiA402。

2. CANopen硬件的优势?

   CAN协议最大的突出特点是错误检测,限制和处理。当CAN设备检测到总线错误时,会拒绝之前接收到的位序列,然后发送“错误帧”,其完全由CAN芯片本身处理,不需要人为编程。

   支持多主站,类似Profibus DP,总线上每个设备都是主站,也是从站,免除了人为仲裁的过程,方便用户开发。

   报文短帧结构,CAN报文通常只有8个字节,数据帧非常短,在抗干扰能力上具有先天的优势。解释一下,为什末短帧结构抗干扰好?如果通讯报文长,发送一帧耗时也就长,加入遇到干扰,辛辛苦苦好不容发送了一条报文,结果因为干扰对方还没有收到,只能嚎啕大哭。

  成本低廉,CAN外设基本在现在主流芯片上都可以找到,20几块钱的MCU都支持CAN外设,有的还支持两个CAN。这里有CiA的积极推广作用。

3. CANopen软件优势?

   CANopen主要有CiA在推广,是非盈利组织,CANopen协议资料,网上一堆,任何人都可以下载到,我们常用的DS301(Draft Standand),DS402,CAN粉丝几乎人手一本,犹如葵花宝典,一定要珍藏一本。

   CANopen协议开发,开源项目非常多,CanFestival就是其中一个,我做过移植,在步科MT4414TE-CAN触摸屏,用在8位单片机上,此源码有点耗费资源,网上有很多基于MCU的精简源码。

   开发完整的CANopen协议栈,是很艰辛的工作,想要做好非常难。难点就在于你对CANopen协议的理解上,比如EMCY,复位节点,是否需要“NO Initialization”,heartbeat,Node guard是否需要?如何处理?这条不能算是其优点。

4. 为什么如此多公司在推广CANopen?

   CANopen对于运动控制来说是一款优秀的通讯协议,采用了面向对象的一些设计思路,比如对象字典,过程数据对象(PDO),服务数据对象(SDO)等等。

   CANopen在欧洲已成为最普通的协议,任何一家自动化公司都有CANopen的通讯接口,也成了低配。低配并不代表不好,只是说明其性价比更高。CANopen定义了完整的同步控制机制,使其成为主流的运动控制协议,除了在CAN总线上运行外,还被搬到了以太网上(CANopen over Ethernet),形成了著名的PowerLink,EtherCat工业以太网协议。

   这里多废话几句,所谓的运动控制总线标准,没有多大意义,因为运动控制技术都掌握在各个厂商手里,每一个稍微大一点的厂商,都有自己的专用运动控制协议,如三菱的SSCNET,安川的MECHATROLINK,倍福的CANOPEN以及EtherCat,施耐德的CANopen,西门子的SiMotion,贝加莱的PowerLink,博世力士乐的SERCOS。

   由于CANopen(可以看DS402,伺服控制标准)在运动控制的优势,尤其是同步控制,不管几流的厂商,在运动控制系统中,多多少少都加入了自己的东西,导致运动控制系统通常是封闭的,很少走互联路线,事实上要做到互联也非常困难。

   二三流厂家,开发自己的CANopen协议,根据自己的需求,将其移至到不同的物理层上去运行,形成自己的运动控制系统,其性能优劣就在于其对CANopen协议的理解程度了。



               基础:CANopen世界里的九个晦涩概念

1. DCF

   是CAN网络的配置(Config)的数据存档文件。其作用不大,在Codesys软件里就有此选项。

2. EDS

   电子数据表格,是描述一台从站设备的属性,参数的文件,是对从站设备对象字典的描述。比如一台伺服驱动器,如果其内部参数(每个参数对应对象字典中的一个位置,由index,sub-index决定)没有更改,其对应的EDS文件就不会更改。多说一句,不是所有的主控制器都需要使用EDS,比如Beckhoff就不需要,他需要你对CANopen DS301,DS402足够熟悉,人工对齐配置;步科FD,JD伺服按照DS402标准制定EDS文件,用户可直接配置,降低开发周期。


3. 复位节点

   当设备遇到异常(如从站断线后重连,使用M258测试步科FD伺服),主控会发送“复位节点”,步科的ED伺服复位节点,驱动器恢复出厂值,而且连CAN通讯参数也恢复成默认值。FD,JD伺服是除了CAN通讯参数外,其他配置参数恢复出厂值。

4. EMCY

   紧急报文,从站如伺服,在断电后会发送一条紧急报文,告诉主控其状态,一般伺服断电后,其电容电量能保证其发送该条报文。

5. 心跳,节点保护

   配置心跳参数,设置心跳周期,心跳消费时间,这个消费者时间实际上是作为一个超时参数。主站收到一个心跳后,开始计时,如果在超时时间内没有收到下一个心跳,则认为从站离线,并报告错误,按照用户配置的错误处理方法处理。

网络中的每个节点都可以配置心跳,主站可以监听从站,从站可以监听主站,从站还可以监听从站。这里有一个生产者、消费者的概念,总线上的设备定义自己是心跳的生产者,还是消费者。生产者产生心跳,消费者监听心跳,然后在捕捉到异常后�做出对应的处理。

   个人认为心跳作用不大,假设某个设备断线,重连后复位节点,而此设备刚好是使用了原点功能的伺服呢?断电上电后,原点位置改变。所以在一些客户应用中,出现此情况,小伙子,你麻利的,赶快断电重启吧。

   节点保护,其作用类似心跳,但可以读取从站设备的CANopen通讯状态(初始化,预操作,操作中,停止),属于DS301的范畴。

6. DS301和DS402的区别

   DS301就是一个通讯协议栈,DS402是建立在DS301的上层协议,属于伺服类的控制协议,协议中规定好每个对象字典值得作用,比如0x6040,是控制字。DS402把一个伺服应该具有的功能都定义好了,开发厂家按照协议定义即可。

7. 对象字典

   从软件的角度来说,对象字典本质就是一些数据结构的集合。可以这么理解,把对象字典看做是一本书,CANopen设备的行为准则是要参考这本书的,不管它做什么,只要它的行为要参考对象字典,就必须先查阅字典,再决定要不要做。比如它什么时候发送TPDO,这个行为是需要查询对象字典中对应于TPDO的传输类型以及Event timer。还有就是像PDO映射的原理,比如我要发送的数据,都是去查询这本书,看下它那里写的什么内容,然后我在把这部分内容以PDO的形式发送出去。

   例如你的程序收到了一笔CAN报文,由于可以访问对象字典的对象是SDO,首先要判断它是SDO对象,那么你的程序就需要按照SDO中指定的索引和子索引去查找对象字典(一个排好序的数据结构集),找到相应的对象后按照SDO中的指令去操作这个对象,例如把一个值赋给字典中的变量。