随着单片机的功能越来越强大,在嵌入控制中的应用也更加广泛。如何实现单片机和变频器之间的通信呢?本文给出了单片机和变频器通信的硬件电路图和通信源程序C51,有助于读者掌握台达变频器在嵌入式系统的通信应用技术。
随着嵌入式技术的飞速发展,单片机与变频器的通信设计技术变得更加具有工程实用意义。在定制化或客制化应用系统里的单片机与变频器通信集成系统不但可以具有更加紧凑、经济、灵活的体系结构,特别是还有利于形成具有独立技术特点和独立知识产权的主权增值产品。
台达VFD全系列变频器均能够通过通信进行参数的读写和控制,随着单片机的功能越来越强大,在嵌入控制中的应用也更加广泛。如何实现单片机和变频器之间的通信呢?本文给出了单片机和变频器通信的硬件电路图和通信源程序C51,有助于读者掌握台达变频器在嵌入式系统的通信应用技术。
台达VFD全系列变频器和C51单片机通信采用串行异步原理。通信速度用波特率表示。波特率即数据传送的速率,其定义是每秒钟传送的二进制数的位数。例如,数据传送的速率是120字符/s,而每个字符如上述规定包含10数位,则传送波特率为1200波特。通信方向:在串行通信中,把通信接口只能发送或接收的单向传送方法叫单工传送;而把数据在甲乙两机之间的双向传递,称之为双工传送。在双工传送方式中又分为半双工传送和全双工传送。半双工传送是两机之间不能同时进行发送和接收,任一时刻只能发信息或者只能收信息。
台达变频器通信字符格式有ASCII和RTU格式,分别如图1和图2所示,通信格式的描述见图3。
图1 台达变频器通信字符结构(ASCII格式)
图2 台达变频器通信字符结构(RTU格式)
图3 台达变频器通信格式描述
8051单片机串行异步通信的方式用一个起始位表示字符的开始,用停止位表示字符的结束。其每帧的格式如下:在一帧格式中,先是一个起始位0,然后是8个数据位,规定低位在前,高位在后,接下来是奇偶校验位(可以省略),最后是停止位1。用这种格式表示字符,则字符可以一个接一个地传送。在异步通信中,CPU与外设之间必须有两项规定,即字符格式和波特率。字符格式的规定是双方能够在对同一种0和1的串理解成同一种意义。原则上字符格式可以由通信的双方自由制定,但从通用、方便的角度出发,一般还是使用一些标准为好,如采用ASCII标准。
8051串行接口是一个可编程的全双工串行通信接口。其可用作异步通信方式(UART),与串行传送信息的外部设备相连接,或用于通过标准异步通信协议进行全双工的8051多机系统也可以通过同步方式,使用TTL或CMOS移位寄存器来扩充I/O口。8051单片机通过引脚RXD(P3.0,串行数据接收端)和引脚TXD(P3.1,串行数据发送端)与外界通信。SBUF是串行口缓冲寄存器,包括发送寄存器和接收寄存器。它们有相同名字和地址空间,但不会出现冲突,因为其中一个只能被CPU读出数据,一个只能被CPU写入数据。
台达变频器接受的RS485信号,单片机输出的是TTL电平。因此变频器和单片机通信要有通信转换芯片,目前常用的RS485芯片有MAX485、MAX483和S75176等。在本例子中采用了MAX485和S75176芯片,同时电路图中预留了RS232电路的接口,方便单片机以RS232通信方式和其他外设进行通信。主单片机采用ATMEL公司的AT89C52单片机。
图4 单片机通信设计软件调试界面
单片机程序通过在KEIL环境下开发编译的,调试界面见图4。