文献标识码: A
文章编号: 0258-7998(2011)03-0054-04
ASIC是根据某一特定用户要求和特定电子系统的需要而设计、制造的集成电路。ASIC按照设计方法的不同可分为全定制ASIC,半定制ASIC和可编程ASIC(也称为可编程逻辑器件)。本文所设计的遥控机器人编码芯片是全定制ASIC芯片,先要定义编码芯片上所有晶体管的几何图形和工艺规则,最后将设计结果交由IC厂家掩膜制造完成[1][2]。设计的编码ASIC提高了遥控机器人的性能,由于采用了脉冲宽度调制技术(PWM),解决了同类芯片电路中的码间干扰,增强了系统工作的稳定性,提高了安全性[3][4]。该芯片采用N阱0.5 ?滋m硅栅工艺,采用手工双层金属布线,工艺成熟、稳定可靠,芯片的面积利用率高、速度快、功耗低。
1 芯片功能定义
在无线遥控系统领域里,编码芯片和解码芯片分别完成信号的功能编码和解码,并驱动相应的控制功能。本文设计的遥控机器人编码芯片管脚应用分布如图1所示。设计的编码芯片需完成地址码学习请求和相应的8个控制功能的编码和发送,当STUDY键按下时,编码芯片输出端(DO)迅速发送地址码学习请求信号,当STUDY松开时,且有控制功能键按下时,编码芯片输出端(DO)就会发送对应的8 bit控制功能请求信号,这8个控制功能信号包括:向前(FORWARD)、向后(BACKWARD)、加速(TURBO)、向右(RIGHT)、向左(LEFT)、附加功能1(FUNCTION1)、附加功能2(FUNCTION2)、附加功能3(FUNCTION3)。FORWARD、BACKWARD、TURBO、RIGHT、LEFT控制解码芯片所属载体的基本控制动作,附加功能1~附加功能3可以用作功能拓展,例如机器人的前后灯亮灭控制,轮子自动收起等,相应可以扩展出多种实际应用。基于以上基本设想可确定芯片应具有的基本输入输出:1个清零控制端RESET;1个地址码学习请求输入STUDY,用于地址码学习功能请求,相对于其他请求功能,它具有最高优先权。8个控制功能输入:向前(FORWARD)、向后(BACKWARD)、加速(TURBO)、向右(RIGHT)、向左(LEFT)、附加功能1(FUNCTION1)、附加功能2(FUNCTION2)、附加功能3(FUNCTION3),用以确定控制功能信号;1个工作状态输出端LO,外接一个发光管用于表示编码芯片是否处于工作状态;1个帧信号发送端DO;另外内部振荡电路需要外接大电阻,需要设置振荡输入和输出管脚OSCI、OSCO用于外接大阻值电阻,或接可变电阻,用来进行系统频率的调节;电源VDD,地VSS,确定以后的遥控编码芯片外部管脚及对应功能见表1。
2 信号的帧结构
遥控机器人编码芯片的帧结构如图2所示,它由同步码、16位地址码、2位状态码、8位功能码、奇偶校验码及结束位32个码元构成,设计中的基带码型以脉冲宽度调制(PWM)技术采用占空比3/4的矩形脉冲表示“1”,占空比1/4的矩形脉冲表示“0”(图3)。帧同步码是一个帧周期信号的标志,帧同步位为“1110”; 帧结构中有16位地址位,在地址码学习的过程中,编码芯片向解码芯片发送具有地址码学习请求功能信号,其中有16位地址码为编码芯片所要求解码芯片学习的地址码[5]。当地址码学习成功后,编码芯片向解码芯片发送具有控制功能的请求信号,其中的16位地址码必须与解码芯片学习后的地址码进行判断,如果相同,就进行相应的控制功能驱动,否则将此控制功能请求信号作无效信号处理。状态位X1,X2分别为“01”和“11”时表示地址码学习请求和控制功能驱动请求。帧结构中设置的功能位对应遥控机器人的8个控制功能:向前(FORWARD)、向后(BACKWARD)、加速(TURBO)、向右(RIGHT)、向左(LEFT)、附加功能1(FUNC-TION1)、附加功能2(FUNCTION2)、附加功能3(FUNCTION3),并按照以上顺序排列。另外,当状态为地址码学习请求时,该8位功能码必须全为零。当状态为控制功能请求时,功能码自身必须具有一定的互斥性。例如,控制功能不能出现同时向左向右或同时向前向后,如果出现这种情况,则认为出现编码出错,解码部分将会丢弃该帧,这是符合实际情况的。因此在解码芯片电路设计中,分别增加了地址码学习时功能数据检测位电路和控制功能驱动时功能数据检测电路。奇偶校验位采用偶校验方式,对功能数据位进行校验,当功能数据位出现偶数个有效位(高电位“1”)时,校验位为低电位“0”;当功能数据位出现奇数个有效位时,校验位为高电平“1”,奇偶校验位为帧中第31位。结束位为一位高电位“1”,表示一帧的结束,未检测到结束位时同样丢弃该帧。
3 编码芯片设计
遥控机器人编码芯片由振荡电路、时序产生电路、按键防抖动电路、上电复位电路(包含移位计数和状态机电路、控制功能信号的锁存电路、地址码学习请求信号输出电路、控制功能请求输出电路)、位同步输出电路等模块构成。编码系统框图如图4所示。编码芯片模块主要有两大功能,功能一:发送地址码请求信号,为了使编码芯片与相应的解码芯片形成一一对称的地址码学习关系,首先保证解码芯片是在地址码学习允许的情况下(SRC按下),然后按下地址码学习请求按键STUDY,编码芯片输出端DO就会输出地址学习请求功能的32帧周期信号“11101010101010101010010000000001”的编码信号“1110-1110-1110-1000-1110-1000-1110-1000-1110-1000-1110-1000-1110-1000-1110-1000-1110-1000-1110-1000-1000-1110-1000-1000-1000-1000-1000-1000-1000-1000-1000-1110”,解码芯片接收到请求信号后进行解码,然后进行检测和判断,再进行地址码学习,将解码芯片的16位地址锁存器固定为“1010101010101010”。功能二:地址码学习成功之后,分别松开SRC和STUDY按键,根据需要输入8位控制功能信号,编码芯片将功能控制帧周期信号进行编码,然后再输出,发送给解码芯片,解码芯片再进行解码驱动相应的控制功能。如果无任何输入状态,编码芯片输出零信号的编码信号。其整个流程如图5所示。最后编码系统完成由地址码学习请求和控制功能请求信号的编码发送。
4 各模块电路设计和功能仿真
根据遥控机器人编码模块总体设计框图,在Quartus II环境下,使用硬件描述语言Verilog-HDL及原理图对整个编码系统各模块进行行为级描述,最后通过Synplify软件对硬件描述语言Verilog -HDL进行综合,得到门级电路。图6为编码系统的核心顶层模块组合,其中fangdd为按键输入信号防抖动模块,clk_div128k为分频模块,为系统提供频 率为2 kHz的时钟;fenpin_count是四进制加法计数器和clk_2k的四分频模块;send1是请求信号的位同步模块,其同步频率为512 Hz,位同步信号以帧周期形式输出, code1_4是帧周期信号的码元编码模块,将原代码编码成适合信道中传输和接收的基带信号。
完成编码芯片各模块的行为级描述之后,进行功能仿真验证。首先按下reset键复位清零,使芯片中所有的寄存器和锁存器置零,然后发送一个地址码学习请求信号(study键按下,相对于控制功能请求来说,具有更高的优先级),此时send1模块判断信号为地址码学习请求,然后send1的输出端输出具有学习请求功能的帧周期信号“1-1-1-0-1-0-1-0-1-0-1-0-1-0-1-0-1-0-1-0-0-1-0-0-0-0-0-0-0-0-0-1”。其中前4位“1-1-1-0”为帧头信号;第5位至第20位为发送出去的16位地址码;第21位和第22位为请求状态位,“01”表示地址码学习请求,“11”表示功能控制请求,此时为地址码学习请求状态,即为“01”;第23位至第30位为功能数据位,由于此时为地址码学习请求状态,故该8位功能数据位为零;第31位为奇偶校验位,是用于判断功能数据位的奇偶情况;第32位为结束位,是帧周期结束标志。然后经过code1-4模块进行码元编码输出,由仿真结果可知相应的码元为“1110-1110-1110-1000-1110-1000-1110-1000-1110-1000-1110-1000-1110-1000-1110-1000-1110-1000-1110-1000-1000-1110-1000-1000-1000-1000-1000-1000-1000-1000-1000-1110”。随后在没有地址码学习请求时,输入控制功能信号,输出的帧周期信号与地址学习请求帧周期相同,不同之处是:其一,地址码与原来地址学习请求发送的地址码一模一样,它是用于与解码芯片学习后的地址码进行比较判断,并不是用于地址码学习之用;其二,功能数据位是相应的控制功能输入信号,并非全为零。此仿真过程中,输入了地址码学习请求、向右加速前进请求和向左后退请求,输出端口分别输出了相应的帧周期信号,达到了设计效果。
5 编码芯片的硬件验证
软件仿真是验证系统电路设计正确性的第一道保障,但它只是对实际情况的一种软件模拟,不能替代实际的硬件验证。在ASIC设计过程中,常常需要对前端设计做FPGA原型验证来确保设计的实际可行性。本平台的主控制芯片采用了ATERA公司研发的Cyclone II系列EP2C8Q208N再加上EPCS4配置芯片。在Quartus II中分别将编、解码芯片的核心电路图(数字电路)输入、输出管脚绊定并进行编译,生成相应的*.pof文件,部分在可编程逻辑器件中无法实现的模拟电路部分被简化掉,因为这些改变不会影响整个编解码方案的功能。另外在下载界面中选择AS模式(Actice Serial programming),通过串口下载线,将*.pof文件直接下载到EPCS4芯片中,然后主控制芯片EP2C8Q208C8N将调用配置芯片EPCS4中的软硬件数据,对整个编解码电路进行相关的数据处理。系统所需的时钟信号clk_2KHz、clk_512Hz、clk_128Hz都是由该核心开发板上的晶振提供的50 MHz分频而来的。为了成功完成编码芯片的FPGA硬件验证,先制作10个输入(RESET、STUDY、FOR-WARD、BACKWARD、TURBO、RIGHT、LEFT、F1、F2、F3)的外围控制电路,然后将编码芯片的核心电路下载到目标芯片中。核心开发板上绑定的10个输入端口分别用导线连接对应的外围控制电路的10个接口,输出端(data out)接入示波器(安捷伦公司的存储示波器:Agilent 1 160 A 600 M)信号输入接口。先后按下外围电路地址码学习请求按键study和控制功能请求按键(forward、turbo、right),然后利用示波器分别抓取了地址码学习请求和“向右加速前进”控制功能请求信号的编码波形。观察波形可知,编码芯片的FPGA验证系统与编码芯片的T-spice仿真一样,都能正确无误地完成地址码学习请求功能和控制功能请求功能,证明了编码芯片电路设计的实际可行性。
6 版图设计
遥控机器人编码芯片的版图设计采用N阱0.5 ?滋m硅栅工艺,其逻辑控制部分的最小线宽为0.5 ?滋m。为了使编码芯片版图在面积和性能上最优化,整个版图设计是调用预先设计好的各单元版图模块在taner-pro软件上通过全手工布局布线的方式完成,大大减小了芯片面积。编码芯片有16个输入输出压焊块,MOS管及阻容元件近5 591个,版图总面积为1.241 mm×0.950 mm。解编码芯片有22个输入输出压焊块,MOS管及阻容元件近6 282个,版图总面积为1.310 mm×0.941 mm。最后对遥控机器人编码芯片的版图进行了整体的设计规则检查(DRC),同时将版图萃取的文件(bianma.spc和jiema.spc)与相应原理图萃取的文件(bianma.sp和jiema.sp)进行LVS(版图与原理图的一致性检查)对比,结果一致[6]。最后提取GDS II文档。
遥控机器人编码芯片的研制,提高了集成度,比同类编码芯片的外接元器件少,适合开发各种低成本遥控报警器及遥控系统。在具体的应用中,只要增强无线射频有效距离,就可将它移植到远距离工作的工业遥控操作系统以及遥控作战机器人、遥控装甲车和无人驾驶战斗机中,并具有很好的发展前景。
参考文献
[1] 刘丽华,辛德禄,李本俊.专用集成电路设计方法[M].北京:北京邮电大学出版社,2001.
[2] 杨凯,崔炳哲.数字逻辑电路的ASIC设计[M].北京:科学出版社,2004.
[3] 肖景和,赵健.无线电遥控组件及其应用电路[M].人民邮电出版社,1997.
[4] 何书森.实用遥控电路原理与设计速成[M].福州:福建科学技术出版社,2002.
[5] 王小华.具有学习功能的遥控赛车解码器的ASIC设计[J].北京:航天控制,2009(5).
[6] 廖裕评,陆瑞强著.Tanner Pro集成电路设计与布局实战指导[M].北京:科学出版社,2004.