双网传真机的编译码电路设计与实现

发布者:Huayu8888最新更新时间:2011-07-22 来源: 现代电子技术关键字:编译码电路  FPGA  码表  双网传真机 手机看文章 扫描二维码
随时随地手机看文章
   

摘要:对双网数字传真机硬件系统中的编码和译码电路进行设计,并采用FPGA芯片进行系统实现和验证。其中的编译码电路分别采用两级编码和快速译码的思路,利用硬件描述语言设计和仿真,简化了逻辑电路的实现。验证测试表明,该电路增强了系统的稳定性和可靠性,提高了编译码效率,缩短了开发周期。
关键词:编译码电路;FPGA;码表;双网传真机

0 引言
    传真通信规程是将要扫描的电平信号值进行A/D转换,再经过图像二值化处理,表示成连续交替黑白点的数据序列(I/O序列),再对该数据序列进行编码后,调制发送;接收端对收到的编码数据信号解调后进行译码,最后由热敏头打印输出。
    在传真通信中,对传真图像数据进行编码和译码是传真通信的关键技术。改进的Huffman码(MHC)是ITU—T.4向各国推荐的一维标准码,主要应用于三类传真机上。MHC码是一种常用的变长码,其信源的消息与码字之间的关系是一对一的,是信息保持型的压缩方法。双网传真系统完成与Internet和PSTN网络的传真通信,采用嵌入式系统的设计思路划分软硬件。其中,传真协议采用软件实现,传真编译码和外围设备控制器采用硬件实现,以降低设计复杂度,提高传真效率。

1 传真机硬件系统模型
    硬件电路模块应包括:CIS扫描电路模块(A/D转换)、编码电路模块(图像二值化处理)、译码电路模块、打印电路模块、步进电机驱动电路模块及时钟电路模块。并以NiosⅡ软核处理器、CIS扫描器件、步进电机、TPH打印器件为硬件平台,通过FPGA实现硬件电路模块。上层软件通过读写寄存器来控制外围设备和编译码电路,完成编码数据的读取和译码数据的写入。图1给出了硬件系统功能模块划分逻辑图。

b.JPG


    其中,时钟电路用来产生扫描、打印及步进电机所需的时序信号;由时钟电路产生的CIS时钟周期为2.6μs,打印时钟周期为4.96μs,步进电机时钟周期为10 ms。数据地址读写总线接口与NiosⅡ处理器直接交互各种控制命令及读写数据,产生外围设备的工作使能信号,通过地址选通信号,完成各个模块与NiosⅡ处理器之间数据的交互。

2 外围设备控制单元
    外围设备的控制主要是通过对CIS扫描器件、TPH打印器件和步进电机发出相应的控制时序信号完成扫描、打印和步进电机的驱动等功能。该部分采用硬件实现可以产生超过定时中断周期的更小周期的时序信号和时序要求精确的驱动信号,同时可以通过配置控制寄存器,对扫描和打印的功能进行选择,上层软件通过状态寄存器来判断电路的工作状态。表1和表2给出了寄存器的详细描述。

c.JPG


2.1 CIS扫描及A/D转换
    设计采用的CIS器件具有最高1.7 MHz的扫描时钟,且有效扫描宽度为216 mm(A4纸的宽度),每行有1728个扫描点。FPGA片内的数字逻辑产生驱动信号CIS_si和CIS_clk,并将模拟信号接入A/D转换器的模拟输入端口,由FPGA片内数字逻辑实时对A/D转换器的输出进行采集。图2给出了CIS接口时序。其中,CIS_si为行启动信号,每行有1728个扫描点,每隔10ms启动一次CIS_si。由于扫描最快能达到1.8ms/line,而打印最快只能达到10 ms/line,所以扫描完成后且预留出步进电机工作的时间,这样就能满足该系统的要求。CIS_clk为2.6μs的扫描时钟,占空比为0.254。ADC_clk为AD采样时钟,周期与CIS_clk相同,占空比为0.046。

d.JPG


    A/D转换的原理是通过CIS扫描器件把原稿的光信号转化为电信号,将CIS扫描器件获得的模拟电信号通过A/D转换器件转化为8 b的数字信号在ADC_clk的下降沿送入扫描数据缓冲区。
2.2 步进电机控制
    在传真机硬件系统中,步进电机的主要作用是根据当前工作状态,驱动扫描或打印夹纸的滚轴。步进电机的时钟周期为10 ms,满足系统要求。扫描时步进电机反转,打印时正转。通过控制寄存器,可以实现标准和精细两种扫描模式。
2.3 打印器件
    设计所用的热敏打印器件系统采用SHECHA216-UH,其接口时序如图3所示(data表示数据在锁存信号有效后输出)。其中,heater_clk为打印头时钟,1 MHz,50 %占空比;heater_latch_n为打印头锁存信号,低电平有效,每隔10ms锁存一次;heater_trobe[3:0]为打印头加热段选信号,在10 ms内,这四个信号依次低有效一次。

e.JPG


[page]
3 编码电路单元设计
    对一个二值传真信源来说,一副传真图像是由扫描线上的像素组成的,而每一扫描线又总是由一些连续的黑像素和白像素组成,连续发生的黑像素为连‘1’,白像素为连‘0’,也称之为黑游程和白游程。连‘1’的个数称为黑游程长度,连‘0’的个数称为自游程长度。黑白游程总是交替出现的。游程长度就等于一条扫描线上的像素总数,A4幅面一般为1 728。本项目使用的图像二值化方法是固定阈值法,即将A/D转化后的8 b数据和阈值做比较,得到‘0’或‘1’(白点或黑点)。当总线地址为01H时,读取32位编码寄存器。
    无失真的信源编码方式中,使用最多的是变长码,其中最优的编码是Huffman码,改进的Huffman码(MHC)是三类传真机信源编码的标准。MHC所做的主要改进是将码字分为终止码和形成码,能够用较短的编码来表示较长的连续黑点或自点。0~63的游程长度用终止码表示,64整数倍的游程长度由形成码表示,任意游程长度大于63的码字表示为“形成码+终止码”。例如,当白游程长度为131 b(128+3)时,编码表示为‘100101000’,即,白游程长度128 b的形成码‘10010’加上白游程长度为3 b的终止码‘1000’。行同步码EOL的格式为‘0000000000 01’。WRLC为白游程长度编码,BRLC为黑游程长度编码。每一行的第一个游程长度编码为白码字,黑白游程长度码字连续交替。收到连续的六个EOL后表示该页结束。根据T.4的表述,一页编码后的传真数据格式如表3所示。

f.JPG


    在构建码表时,构建四个不同的码表单元,即黑、白游程形成码码元单元和黑、白游程终止码码元单元。同时需要存储黑白游程编码码元的长度信息。终止码码表的地址是按游程长度编写的,即0~63,而形成码的码表地址共有27个。这样存储可以通过黑白计数值直接找到地址,码表所存储的信息为17位,表4给出了MHC码表的输出说明。

g.JPG


    例如,编码得到的码元信息是‘0111’,这是白游程2所代表的码元,则码元的有效长度为‘0100’(4位),码元信息为‘011100000000 0’(13位)。在码元黑白属性发生改变时,如果当前游程的计数长度小于64,则取计数长度的低6位为地址,查找对应码表(终止码表)中的17位数据;如果游程长度大于或等于64,则取计数长度的高5位为地址,查找对应码表(形成码表)中的17位数据。NiosⅡ处理器进行数据交换,采用32位寄存器接口。每次查找完MHC码表后,采用二级编码电路对一级编码电路得到的信息再进行一次编码,将17位编码数据转换成32位编码数据。图4给出了编码状态转移图。

h.JPG



4 译码电路单元设计
    对于MHC码而言,首先它是一个变长码,发送端在编码时把游程长度所对应的码元数据不留间隙的存入发送缓冲区中,经过调制载波后发送出去。接收端解调出来的数据,即编码数据,译码时从该数据序列中分离出码字,由码字去找出所对应的游程长度,输出到打印缓冲区,就完成了译码过程。要提高译码速度,可以采用多步合一的方法,减少查找码表的次数,也就是一次输入多个码元。根据码表的特点,对白译码而言,第一次可直接输入4个码元,对于黑译码,第一次可输入2个码元,随后每次可输入2个码元或1个码元。
    译码时,通过Avalon总线接口将编码数据写入一个32×256 b的缓冲区;译码完成后,将数据送到打印缓冲区,由信号控制模块控制打印缓冲区的复位、读时钟、读请求和打印头时钟信号,打印缓冲区的大小为1×2 048 b。当写入个数记到1 728时,就会进行读操作。如果出现误码,写入个数超过1 728时,FIFO清零,此时不进行读操作,而是将误码的那行数据丢弃,并加入一行白点(1 728个‘0’)。传真译码电路如图5所示。
    在译码电路中,检测到EOL后,将对译码缓冲区的数据交替地进行白译码、黑译码、白译码操作。其中译码码表的地址和数据宽度均为8 b。译码时,接收4 b数据(白码元),通过形成的8 b地址来查找码表并返回一个8 b数据Ram_Data,并根据此数据低2位的值来进行下一步操作。当Ram_Data低2位为‘01’时,输出数据高6位的值,此时终止码使能有效;当Ram_Data低2位为‘11’时,输出数据高6位的值,此时形成码使能有效;当Ram_Data低2位为‘00’时,表示接收1 b数据和Ram_Data相加形成新地址;当Ram_Data低2位为‘10’时,表示接收2 b数据和Ram_Data相加形成新地址;继续查找码表,重复操作,直到译出码元或出错为止。查找黑白码表不同的是:对于白译码而言,由于最短码字长度为4,所以第一次可直接查找4 b码元,随之可查找2 b或1 b码元;而对于黑译码而言,由于最短的码字长度为2,所以第一次查找2 b码元,随之可查找2 b或1 b码元;输出的6 b数据为连续黑点或连续白点的个数。将译码后的数据存入1×2 048 b的打印缓冲区,当存储数据满一行时,输出到打印头打印,待清空后再进行下一行的译码。扫描到打印一行的时间要求是10 ms,所以译码完成后进行等待,直到数据锁存后再进行下一行的译码。译码状态转移图如图6所示。

i.JPG



5 仿真验证与系统测试
    采用基于码表遍历的验证策略,对电路进行仿真验证,并查看输出波形图,结果均与设计要求一致。仿真部分波形图如图7所示。

a.JPG


    其中,fifo_data为编码数据;dot_cont为译出的总点数;white_black_flag为黑白标志位,‘1’表示黑,‘0’表示白。
    该电路通过QuartusⅡ环境下的SOPC配置CPU核,在Altera公司的FPGA开发板上进行下载,并在NiosⅡ开发环境中使用软件测试该电路,通过寄存器驱动电路工作,经过扫描,CPU核向电路写入编码数据,待输出标识位有效后,再读出译码后数据,通过传真机打印出来。综合结果表明电路可以工作在100 MHz时钟频率下。
    将传真标准样张编码数据送给译码模块完成对译码电路的测试,打印出的图像满足测试标准。然后将标准样张原稿经过扫描编码,送给译码打印,输出打印结果与原稿比对。通过反复调试,软硬件运行稳定,达到系统功能指标。

6 结语
    本文采用两级编码和快速译码的设计思路,在FPGA芯片上实现了编译码电路和外设控制器。上层软件通过寄存器接口完成对硬件系统的控制,经过仿真验证与测试,电路对传真数据正确编译码,与软件系统相配合为高性能的双网传真机提供了可靠的技术基础。

关键字:编译码电路  FPGA  码表  双网传真机 引用地址:双网传真机的编译码电路设计与实现

上一篇:数字基带处理器AD6900的多媒体应用
下一篇:FPGA的嵌入式系统USB接口设计

推荐阅读最新更新时间:2024-05-02 21:30

基于ARM+FPGA+多DSP的嵌入式实时图像处理系统
摘 要: 介绍了一款通用的嵌入式图像处理系统的设计方法。系统采用FPGA设计FIFO实现ARM与多DSP的高速数据传输方法。实验结果表明,所设计的多DSP协同工作的实时嵌入式图像处理系统,其工作性能稳定、数据处理能力强,适用于高端的雷达信号处理、电子对抗、超声图像处理等场合。 关键词: ARM11; TMS320C6416T; FIFO; FPGA; 多DSP嵌入式系统 实时图像处理、高速数据运算处理要求其系统具有对数据处理速度快、数据吞吐率高以及多任务处理功能。目前大多数方案都是采用HPI数据传输方式,将ARM和DSP进行组合完成一些图像处理,DSP处理器只是完成图像采集、压缩、编码等简单的处理 工作,不能满足实时的智能
[嵌入式]
基于ARM+<font color='red'>FPGA</font>+多DSP的嵌入式实时图像处理系统
浅析FPGA设计流程及布线资源
1、电路设计与输入   电路设计与输入是指通过某些规范的描述方式,将工程师电路构思输入给EDA工具。常用的设计方法有硬件描述语言(HDL)和原理图设计输入方法等。原理图设计输入法在早期应用得比较广泛,它根据设计要求,选用器件、绘制原理图、完成输入过程。这种方法的有点是直观、便于理解、元器件库资源丰富。但是在大型设计中,这种方法的可维护性较差,不利于模块构造与重用。更主要的缺点就是当所选用芯片升级换代后,所有的原理图都要做相应的改动。目前进行大型工程设计时,最常用的设计方法是HDL设计输入法,其中影响最为广泛的HDL语言是VHDL和Verilog HDL.他们的共同特点是利用由顶向下设计,利于模块的划分与复用,可移植性好,通用性好
[模拟电子]
基于模糊控制的迟早门同步器及其FPGA实现
  在数字通信系统中,必须以符号速率对解调器的输出进行周期性地采样.为此,接收器需要一个采样时钟信号,这个时钟信号的频率和符号速率相等,相位则必须保证采样时刻是最佳的.在接收器中获得这个采样时钟的过程被称为符号同步或符号定时恢复.迟早门(Early-late Gate)是实现符号同步的重要方法之一,广泛运用于各种数字通信系统中.本文提出的基于模糊控制的迟早门与传统的迟早门相比,具有同步速度快、过冲小、相位抖动小等优点.在其FPGA实现中,采用了离线计算实时查表控制的方法,并针对实际应用的情况,将控制表转化为逻辑方程,进一步简化了电路.   1 迟早门简介   一阶闭环平衡双积分型迟早门结构如图1所示.   早门累加器和迟
[嵌入式]
基于模糊控制的迟早门同步器及其<font color='red'>FPGA</font>实现
基于PROTEUS的数字电压表印刷电路板设计
  PROTEUS7.5嵌入式系统仿真与开发平台主要包括强大的ISIS原理布图工具、PROSPICE混合模型SPICE仿真、以及ARES PCB设计等三个功能模块。其中ARES(Advanced RouTIng and EditingSoftware)是用于PCB设计的后端工具模块,它与ISIS.EXE相结合,可以将设计调试好的原理图电路方便地变成印刷电路板版图,其设计结果可以生成光绘机需要的Gerber恪式版图设计文件。   与其它同类的Layout设计工具相比较,该工具最具特色的功能:一是在PROTEUS 7.5版本中提供了基于形状的布线器,且具有四种操作模式。其高效的撤销和重新自动布线功能可快速布置出符合用户要求且较完美的
[嵌入式]
基于PROTEUS的数字电压表印刷<font color='red'>电路</font>板设计
TMS320C61416控制FPGA数据加载设计(一)
目前实现加载的方法通常有两种:一种是用专用Cable通过JTAG口进行数据加载,另一种是外挂与该FPGA厂商配套的PROM芯片。前者需要在PC机上运行专用的加载软件,直接下载到FPGA片内,所以掉电数据仍然会丢失,只适用于FPGA调试阶段而不能应用于工业现场的数据加载。后者虽然可以解决数据丢失问题,但这种专用芯片成本较高,供货周期也较长(一般大于2个月),使FPGA产品的开发时间受到很大约束。根据FPGA芯片加载时序分析,本文提出了采用通过市面上常见的Flash ROM芯片替代专用PROM的方式,通过DSP的外部高速总线进行FPGA加载;既节约了系统成本,也能达到FPGA上电迅速加载的目的;特别适用于在FPGA调试后期,待固化程序
[模拟电子]
TMS320C61416控制<font color='red'>FPGA</font>数据加载设计(一)
采用FPGA芯片和处理器实现数字示波器的设计
引言 在电子技术领域中,示波器的应用非常广泛,使用它可以方便直观地观察到信号的全貌,并测量信号的幅度、频率、周期等基本参数。传统的模拟示波器显示时采用荧光物质的余辉时间都是一定的,导致其难以观测到周期较长的信号。另外,模拟示波器还无法对信号进行一些特殊的数学处理(如FFT)。而数字示波器正好可以克服模拟示波器的不足,它采用各种先进的测量技术来满足各种应用。如基于采样原理,采用高速A/D转换器实现高速数据采集,将模拟信号数字化,然后借助处理器强大的数据处理能力实现各种数字信号处理算法,将波形以图形的方式直观地显示出来,并能够得到被测信号各种丰富的参数。 1 系统总体方案 本设计的系统框图如图1所示,得益于FPGA的灵活性,系统的
[测试测量]
采用<font color='red'>FPGA</font>芯片和处理器实现数字示波器的设计
扩充FPGA的应用范围—Intel又有大动作
英 特尔收购eASIC 提高可编程解决方案事业部整体实力 英特尔计划将结构化ASIC纳入业务组合,充分满足高性能、低功耗应用的需求。 当今,随着数据的爆炸式增长以及处理、分析、存储、分享数据的需求激增,推动着硅片市场的发展,这一动态又催生出企业对各类计算解决方案的需求,英特尔正在争夺有史以来最大的潜在硅片市场。英特尔在CPU有着很强的优势,如今也提供各类定制计算解决方案,帮助客户处理各类工作负载——包括在云端、网络、边缘。近年来,英特尔扩大了产品范围,引入突破性创新,涉及领域包括内存、调制解调器、特定用途定制ASIC、视觉处理单元、可编程逻辑门阵列(FPGA)。 FPGA的应用范围正不断扩大,因为它功能全面且具有实
[网络通信]
FPGA之DDS信号发生器
本文主要涉及以下几个问题 1:频率控制字如何得到 2:DDS的框图 3:用MATLAB得到正弦波的数字量化 4:设计代码 5:仿真代码 6:仿真图 首先将正弦波信号离散化,离散成多少位的根据自己的设计精度要求来定,但最高位一定是符号位,负数用补码来表示;然后用rom或者ram来存储离散后的数据;再由频率控制字的累加来给出地址用于读出ROM或者ram中的数据。 1:相位累加器的位宽设为n,fc/(2^n)称作频率分辨率,这是能分辨出的最小频率,提高相位累加器位宽可以调高频率分辨率。目标频率f=M*fc/2^n ,fc是采样频率,M是频率控制字,由此可以得到频率控制字。 2:DDS框图其中输入到ra
[测试测量]
<font color='red'>FPGA</font>之DDS信号发生器
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved