尹华山,孙 立
(南京航空航天大学 理学院,江苏 南京 211100)
微电子技术的发展将数字电路技术推向一个新纪元,而在微电子领域中,可编程逻辑又担任着重要角色。如今,几乎所有的数字产品的开发都离不开可编程逻辑技术(PLD)。基于PLD技术的重要性,有必要在我国高等院校本科阶段的课程实践环节引入更多与之相关实验教学。考虑到在当代通信领域,信号基本都以数字形式进行处理,若将通信与PLD技术相结合设计一套数字电路实验教学设备,不失为一个不错的方案。
本实验仪以音频信号数字化光纤通信作为演变处理与测试内容,囊括了数字电路技术的A/D与D/A转换技术、串化解串技术、编解码技术、数字信号传输以及PLD技术。从功能上划分,系统包括音频发生电路,抗混叠滤波电路,FPGA控制电路,串化/解串电路,电/光与光/电转化模块及音频功放模块等,如图1所示。
图1 音频信号传输系统构架图Fig.1 Audio signal transmission system frame diagram
该系统的FPGA控制芯片采用Altera公司cyclone系列芯片EP1C6T144C8,用Verilog语言编写[1-2]。文中重点介绍该系统中FPGA控制电路逻辑程序语言的设计构思与编制方法。
采用12位串行输出的A/D芯片,图2中sdin为数据输入端,sclk是对应的数据读取时钟,上升沿有效。clk是发送端系统时钟,由外部晶振提供。该部分分两条工作路线,一条传送音频信号,由sdin串行输入,再经outdata[7..0]并行输出,一条检测信号频率并在storage置低(按下存储键时)的情况下开始从10个周期中均匀时间间隔地抽取160组数据并按先后顺序存储。每次按下上键(或下键)时,后一位数据(或前一位数据)便分别从 voltage[14..0](电压值)和 interval[16..0](时间间隔)输出,提供给下一级处理[3]。
图2 A/D采样与数据处理Fig.2 A/D sampling and data processing
8B/10B编码(以下简称8B/10B)作为一种高性能的串行数据编码标准,其基本思想是将一个字节宽度的数据经过映射机制(Mapping Rule)转化为10位宽度的字符,但是平衡了位流中0与1的个数,也就是所谓的直流平衡特性。同时规定位流中0或1的游程长度(Run Length)的最大值不能大于5,以使得传输过程保持足够高的信号变换频率,这样不仅确保了时钟恢复也使信息流的直流频谱分量为零或近乎为零,而正是这些特性使得8B/10B编码特别适合光纤等介质的连接和信息传输[4]。
8B/10B可以看做是5B/6B和3B/4B编码的组合,组合后有些编码可能有两个值,“1”和 “0”的差值称为平衡度,用RD-表示平衡度+2和0,用 RD+表示平衡度-2和 0,将转换后的数据按平衡度分为RD-和RD+两列。若设DISPIN表示正在转换的数的平衡度,DISPOUT表示下一个数的转换的平衡度。起初设两者相等,先从RD-列开始转换,如果转换后“1”和“0”的数量相等,继续在 RD-列中转换下一个数,如果不等,则转到RD+列中转换。同样若在RD+列中转换后二者数量相等,则继续在该列中转换,否则转到RD-中转换[5]。
图3 8B/10B编码流程图Fig.3 8B/10B code flow chart
8B/10B编码模块图设计[6]构思如图4所示。datain[8:0]为编码数据输入引脚,其中的datain[4:0]为5B/6B编码数据输入端,datain[7:5]为3B/4B编码数据输入端。datain为控制字符编码标示位,为1表示为控制字符编码,为0表示为数据字符编码。dispin为8B/10B编码前的RD输入引脚;dispout为8B/10B编码后的RD输出引脚。dataout[9:0]为编码数据输出引脚。
图4 8B/10B编码模块图Fig.4 8B/10B coding module chart
经过权值计算处理得到的信号电压值与基础时间间隔的数字信号分两路输出,一路直接在液晶屏上显示电压值大小,一路经过自然二进制码、8421BCD码、4221BCD码等码制转换后,由数字信号输出(仪器的Q9端口)给外部示波器进行逻辑分析,读取数值大小,比较与液晶屏上显示的数值的对应关系。
图5 数字信号输出(Q9输出)端口Fig.5 Digital signal output(Q9 output)port
如图5所示,clk为时钟输入,paralled[14..0]为并行输入端,serial为串行输出端。由于示波器有几种触发方式,比如脉宽触发、上升沿触发、下降沿触发等,为了使一组数据在示波器中显示出稳定的波形,需选定一种触发方式。考虑到通用性使用方式,一般选择脉宽触发,故serial的数据前端还要设计插入一个单触发脉冲信号,用于示波器重复扫描获得的起始触发脉冲。
常见的BCD码有8421码、5421码、4221码、格雷码、余三码等。为方便起见,系统只进行由自然二进制码向8421码、4221码及5421码有权BCD码的转换。由于8421码、4221码和5421码之间的转换相对简单,直接查表即可,故不赘述。而自然二进制码到8421码转换的硬件实现则相对复杂,程序设计实现如下:
首先假设原自然二进制码m有n位,从右往左依次递增,即最低位为第1位。第一步将n、n-1、n-2三位进行5421码转换,取第n+1位作为进位位,1代表数值,然后加入下一位即第n-3位,此时一共构成5位,最高位x1则代表数值10,低四位(n、n-1、n-2、n-3 位)为 8421 码;第二步,将第一步中得到的低四位进行5421码转换,然后同样加入下一位即:
第n-4位,此时又构成5位,最高位x2代表数值10,低4 位(n-1、n-2、n-3、n-4 位)构成 8421 码;以此类推,依次进行第三步、第四步……一直到第n-3步,并分别得到x1,x2,x3,……xn-3,以及所需要的个位数ones(第n-3步中得到的低4位),如图 6 所示。 x1,x2,x3,……xn-3再次构成自然二进制码 x1x2x3……xn-3,按照同样方法,可得到所需要的十位数tens,百位数hundreds,以及千位数thousands。
图6 自然二进制码向5421码的转换Fig.6 Natural binary code to 5421 code conversion
采用12864型液晶屏,其控制时序较为简单。用单片机软硬件结合形成的控制方法来实现较为普通,但设计用可编程逻辑芯片FPGA形成的全硬件电路实现则有相当复杂的技术难度。另外,由于显示的文字(汉字与数字)较多,而调用了ram存储器,增加时序关系的复杂性。图7为液晶时序控制的逻辑实现模块,clk为系统时钟,连接外部晶振,进入后再由分频模块对其分频,以降低写入频率。address[5..0]连接至ram的读地址端,indat[7..0]连接至ram的数据输出端,在en使能时,由outdat[7..0]将数据输出给液晶屏。
图7 液晶显示时序控制模块Fig.7 Liquid Crystal Display(LCD)sequential control module
ram存储器的基本构成有6个输入端和一个输出端。6个输入端中,两个分别为读时钟 (rdclock)和写时钟(wrclock), 另外两个分别为读地址 (rdaddress)和写地址(wraddress),其 余 两 个 为 数 据 输 入 端 (data[7..0])和 使 能 端(en)。 输出端为数据输出(q[7..0])。
以上主要描述在硬件电路采用FPGA芯片环境下,实现音频数字信号的采集与传输的实时处理,幅度与频率的测量方法,8B/10B编码、BCD码制转换、数字信号输出处理以及液晶屏时序控制等设计原理与技术处理。
科技进步使人类已经进入信息化时代,其中的数字技术是最重要的标志之一。而数字技术迅速发展与不断变化,让当今人们感到目不暇接,日新月异。而目前国内大学的许多基础性教学内容,还停留在过往的模拟体系内容中,这与现实的状况和发展的需要,严重地相脱节与背离。本实用新型实验仪的研制成功,不仅集现代电子技术与数字通信技术的特点与优点于一身,而且在对音频信号数字化处理及数字信号光纤传输方面,具有独特的教学示范效果。它可以引导实验者,由浅入深的教学实践和深入浅出的渐进式学习。不仅可以深刻认识模拟变量与数字变量,以及二者在形式上的区别与内在的相互关联;而且可以深入了解二者之间的自然演化与时代变迁,在技术进步与科技发展上面对人类带来的巨大作用、深刻影响和长远意义。不仅可以获得现代通信技术的基本概念与基础理论等初步知识;而且提升了实验仪器的技术水平和丰富了实验教学科目的内容。在国内大学的基础实验教学领域是首次研制出的实验用仪器,填补了这一领域的应用空白。
[1]罗杰,康华光.两种硬件描述语言VHDL/Verilog的发展及其应用[J].电气电子教学学报,2002,24(4):4-5.
LUO Jie,KANG Hua-guang.The development and application of two hardware description languages-VHDL/Verilog[J].Jounual Electrical&Electronic Education,2002,24(4):4-5.
[2]蒋敬旗,刘明业.芯片设计方法学的基础——硬件描述语言Verilog[J].计算机辅助设计与图形学学报,2002,14(11):1092-1095.
JIANGJing-qi,LIUMing-ye.Thebasisofchipdesignmethodology verilog hardware description language[J].Journal of Computer-Aided Design&Computer Graphics,2002,14(11):1092-1095.
[3]尹作友.数据采集系统中码制转换的处理方法[J].锦州师范学院学报:自然科学版,2002,23(1):45-47.
YIN Zuo-you.The method for resoluing code convert in data collecting system[J].Journal of Jinzhou Teachers College:Natural Scienec Edition,2002,23(1):45-47.
[4]李欣,管绍军,胡晓天.基于FPGA的光纤通信系统的设计与实现[J].电子设计工程,2012,20(8):86-87.
LIXin,GUANShao-jun,HUXiao-tian.Designandimplementation of optical fiber communication system based on FPGA[J].Electronic Design Engineering,2012,20(8):86-87.
[5]钱皓,成龙,孙立,等.音频信号数字化光纤传输实验仪信道的设计与实现[J].电子设计工程,2012,20(12):84.
QIAN Hao,CHENG Long,SUN Li,et al.Design and realization ofaudiosignaldigitizationopticalfibertransmissionexperiment instrument channels[J].Electronic Design Engineering,2012,20(12):84.
[6]戴居丰,贺传峰,毛陆虹.一种新的光纤通信8B/10B编解码实现方法研究[J].电路与系统学报,2005,10(2):30-33.
DAI Ju-feng,HE Chuan-feng,MAO Lu-hong.Study on a new implementing method of 8B/10B encoding and decoding for fiber communication[J].Journal of Circuits and Systems,2005,10(2):30-33.