CN105281786A - 一种应用于嵌入式系统的bch编码装置及其控制方法 - Google Patents
一种应用于嵌入式系统的bch编码装置及其控制方法 Download PDFInfo
- Publication number
- CN105281786A CN105281786A CN201510729937.7A CN201510729937A CN105281786A CN 105281786 A CN105281786 A CN 105281786A CN 201510729937 A CN201510729937 A CN 201510729937A CN 105281786 A CN105281786 A CN 105281786A
- Authority
- CN
- China
- Prior art keywords
- chaudhuri
- bose
- register
- function
- hocquenghem code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Communication Control (AREA)
Abstract
本发明特别涉及一种应用于嵌入式系统的BCH编码装置及其控制方法。该应用于嵌入式系统的BCH编码装置,由AVALON从端口,内部寄存器组,状态机,双口RAM和BCH编码电路模块组成,可以匹配目前流行的嵌入式系统的32位总线,32位并行的完成BCH(4200,4096,8)编码,无需CPU干预。该应用于嵌入式系统的BCH编码装置及其控制方法,只需简单写入数据和指令,后续操作均由状态机执行,无需CPU参与,有效的提高了BCH的计算速率,并且采用32位线宽,采用BCH(4200,4096,8)的码字,有效的匹配了总线的宽度,并且接口设计符合总线规范,可以方便的移植到嵌入式系统中,大大减少开发周期,具有广阔的应用前景。
Description
技术领域
本发明涉及BCH编码技术领域,特别涉及一种应用于嵌入式系统的BCH编码装置及其控制方法。
背景技术
BCH码是一种循环码,通过指定有限域上连续的根来构造,具有多位的前向纠错能力。BCH(4200,4096,8)码,是一种纠错能力为8,信息位为4096bit,码长为4200bit的纠错码,在现代嵌入式和通信领域有着广泛的应用。现在的BCH编码电路一般是专用的电路,没有考虑到可移植性和总线的数据匹配的问题,使用的时候还需要再做其他的外围电路设计或者改装,延长了系统的开发周期,并且在实时速率要求较高的领域编码速度显得不足。
NiosII嵌入式系统是基于SOPC技术,在FPGA内实现SOC,方便建立各种硬件模块,并且提供了大量的外设和系统的驱动函数,加速了系统的开发流程,在现代电子领域有着越来越广泛的应用。
针对以上问题,在可配置的NiosⅡ嵌入式系统平台上,本发明设计了一种应用于嵌入式系统的BCH编码装置。可以有效的提高的编码速率和总线两端的数据匹配,并且大大提高了编码电路的可移植性,可以方便的移植到嵌入式系统中去。
发明内容
本发明为了弥补现有技术的缺陷,提供了一种简单高效的应用于嵌入式系统的BCH编码装置及其控制方法。
本发明是通过如下技术方案实现的:
一种应用于嵌入式系统的BCH编码装置,其特征在于:由Avalon从端口,内部寄存器组,状态机,双端口RAM和BCH编码电路模块组成,所述Avalon从端口通过标准接口分别连接到与所述内部寄存器组以及双端口RAM,所述状态机分别与所述内部寄存器组和BCH编码电路模块相连接,所述BCH编码电路还连接到与双端口RAM;同时,所述Avalon从端口还连接到Avalon总线,NiosⅡ处理器通过Avalon总线连接到Avalon从端口,片上RAM作为NiosII处理器的程序存储空间也连接到Avalon总线。
所述内部寄存器组包括状态寄存器,命令寄存器,中断寄存器和地址寄存器,所述状态寄存器,命令寄存器,中断寄存器和地址寄存器均与Avalon从端口以及状态机相连接。
所述BCH编码电路模块内部包括并行计算矩阵和计算结果保存寄存器,所述并行计算矩阵与计算结果保存寄存器相互连接,且都与双端口RAM连接。
所述并行计算矩阵采用32位并行计算,与NiosⅡ处理器32位数据位宽相匹配。
本发明应用于嵌入式系统的BCH编码装置,由Verilog硬件描述语言设计。
本发明应用于嵌入式系统的BCH编码装置的控制方法,其特征在于包括以下步骤:
(1)在NiosⅡIDE开发环境下编写BCH硬件编码装置的设备驱动函数,设备驱动函数通过对寄存器映像的操作实现与硬件控制装置的通信,完成对BCH编码器电路和双端口RAM的初始化;
(2)根据步骤(1)中编写的所述设备驱动函数,构造出BCH编码的系统的API函数,包括初始化函数,双端口RAM读写函数,命令写入函数,地址寄存器写入函数,检查状态寄存器函数,中断服务函数和报错函数;
(3)对硬件系统上电复位,初始化BCH编码电路和双端口RAM;
(4)NiosⅡ处理器写入软件初始化函数,再次初始化,并检查状态寄存器,若成功进行下一步,如果超过1s钟仍不成功,则提示错误;
(5)调用双端口RAM写入函数和地址寄存器写入函数,将编码需要的信息位,写入双端口RAM,并将起始地址写入地址寄存器;
(6)调用命令寄存器写入函数,写入控制命令,开始编码;
(7)等待响应编码完成中断,若超过1s钟系统未能响应中断则提示错误;否则编码完成,则表示完成了一次编码。
本发明的有益效果是:该应用于嵌入式系统的BCH编码装置及其控制方法,只需简单写入数据和指令,后续操作均由状态机执行,无需CPU参与,有效的提高了BCH的计算速率,并且采用32位线宽,采用BCH(4200,4096,8)的码字,有效的匹配了总线的宽度,并且接口设计符合总线规范,可以方便的移植到嵌入式系统中,大大减少开发周期,具有广阔的应用前景。
附图说明
附图1为本发明应用于嵌入式系统的BCH编码装置结构示意图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行详细的说明。应当说明的是,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
该应用于嵌入式系统的BCH编码装置,由Avalon从端口,内部寄存器组,状态机,双端口RAM和BCH编码电路模块组成,所述Avalon从端口通过标准接口分别连接到与所述内部寄存器组以及双端口RAM,所述状态机分别与所述内部寄存器组和BCH编码电路模块相连接,所述BCH编码电路还连接到与双端口RAM;同时,所述Avalon从端口还连接到Avalon总线,NiosⅡ处理器通过Avalon总线连接到Avalon从端口,片上RAM作为NiosII处理器的程序存储空间也连接到Avalon总线。
所述内部寄存器组包括状态寄存器,命令寄存器,中断寄存器和地址寄存器,所述状态寄存器,命令寄存器,中断寄存器和地址寄存器均与Avalon从端口以及状态机相连接。
所述BCH编码电路模块内部包括并行计算矩阵和计算结果保存寄存器,所述并行计算矩阵与计算结果保存寄存器相互连接,且都与双端口RAM连接。
所述并行计算矩阵采用32位并行计算,与NiosⅡ处理器32位数据位宽相匹配。
该应用于嵌入式系统的BCH编码装置,由Verilog硬件描述语言设计,可以方便地挂接在NiosⅡ嵌入式系统的Avalon总线上,从而有效的实现数据匹配,方便移植并且具有较高的编码效率。
该应用于嵌入式系统的BCH编码装置,各部分的功能如下:
Avalon从端口:实现NiosⅡ处理器对BCH编码装置的控制,接收来自处理器的控制信号。
寄存器组:该装置的驱动程序通过操作寄存器组与硬件通信,实现编码电路初始化,双端口RAM初始化,反应BCH编码装置的状态,使能中断,并最终实现BCH编码。
状态机:是一个状态控制器,它是由Verilog语言编写,作为模块烧写到FPGA中,实现BCH编码电路的内部的状态控制,使得该装置可以按顺序读取双端口RAM中的数据,执行编码,并将最后形成的码字写入到双端口RAM中信息位所在的地址之后。
在该应用于嵌入式系统的BCH编码装置的内部,Avalon从端口通过标准接口与其他寄存器相连,实现处理器与BCH编码装置的通信;内部所有模块都与状态机连接,保证了数据的正确读出,计算和写入。该装置是基于NiosⅡ嵌入式系统设计的,因此它还需连接一些外部硬件,与其相连的外部硬件的功能如下:
NiosⅡ处理器:发起对BCH编码器的初始化和数据命令的写入,实现对BCH编码装置的控制。
片上RAM:与AVALON总线连接,作为NiosII处理器的程序存储空间。
Avalon从端口连接内部寄存器组以及双端口RAM的标准接口,即为ce片选信号、wen写使能信号,rden读使能信号、addr地址总线、data_in数据输入总线、data_out数据输出总线以及Irq中断信号,这些接口均是公知的NiosII总线中的信号端口,设计此种端口,非常方便移植。
该应用于嵌入式系统的BCH编码装置的控制方法,包括以下步骤:
(1)在NiosⅡIDE开发环境下编写BCH硬件编码装置的设备驱动函数,设备驱动函数通过对寄存器映像的操作实现与硬件控制装置的通信,完成对BCH编码器电路和双端口RAM的初始化;
(2)根据步骤(1)中编写的所述设备驱动函数,构造出BCH编码的系统的API函数,包括初始化函数,双端口RAM读写函数,命令写入函数,地址寄存器写入函数,检查状态寄存器函数,中断服务函数和报错函数;
(3)对硬件系统上电复位,初始化BCH编码电路和双端口RAM;
(4)NiosⅡ处理器写入软件初始化函数,再次初始化,并检查状态寄存器,若成功进行下一步,如果超过1s钟仍不成功,则提示错误;
(5)调用双端口RAM写入函数和地址寄存器写入函数,将编码需要的信息位,写入双端口RAM,并将起始地址写入地址寄存器;
(6)调用命令寄存器写入函数,写入控制命令,开始编码;
(7)等待响应编码完成中断,若超过1s钟系统未能响应中断则提示错误;否则编码完成,则表示完成了一次编码。
Claims (6)
1.一种应用于嵌入式系统的BCH编码装置,其特征在于:由Avalon从端口,内部寄存器组,状态机,双端口RAM和BCH编码电路模块组成,所述Avalon从端口通过标准接口分别连接到与所述内部寄存器组以及双端口RAM,所述状态机分别与所述内部寄存器组和BCH编码电路模块相连接,所述BCH编码电路还连接到与双端口RAM;同时,所述Avalon从端口还连接到Avalon总线,NiosⅡ处理器通过Avalon总线连接到Avalon从端口,片上RAM作为NiosII处理器的程序存储空间也连接到Avalon总线。
2.根据权利要求1所述的应用于嵌入式系统的BCH编码装置,其特征在于:所述内部寄存器组包括状态寄存器,命令寄存器,中断寄存器和地址寄存器,所述状态寄存器,命令寄存器,中断寄存器和地址寄存器均与Avalon从端口以及状态机相连接。
3.根据权利要求1所述的应用于嵌入式系统的BCH编码装置,其特征在于:所述BCH编码电路模块内部包括并行计算矩阵和计算结果保存寄存器,所述并行计算矩阵与计算结果保存寄存器相互连接,且都与双端口RAM连接。
4.根据权利要求3所述的应用于嵌入式系统的BCH编码装置,其特征在于:所述并行计算矩阵采用32位并行计算,与NiosⅡ处理器32位数据位宽相匹配。
5.根据权利要求1所述的应用于嵌入式系统的BCH编码装置,其特征在于:由Verilog硬件描述语言设计。
6.根据权利要求1-5中任意一项权利要求所述的应用于嵌入式系统的BCH编码装置的控制方法,其特征在于包括以下步骤:
(1)在NiosⅡIDE开发环境下编写BCH硬件编码装置的设备驱动函数,设备驱动函数通过对寄存器映像的操作实现与硬件控制装置的通信,完成对BCH编码器电路和双端口RAM的初始化;
(2)根据步骤(1)中编写的所述设备驱动函数,构造出BCH编码的系统的API函数,包括初始化函数,双端口RAM读写函数,命令写入函数,地址寄存器写入函数,检查状态寄存器函数,中断服务函数和报错函数;
(3)对硬件系统上电复位,初始化BCH编码电路和双端口RAM;
(4)NiosⅡ处理器写入软件初始化函数,再次初始化,并检查状态寄存器,若成功进行下一步,如果超过1s钟仍不成功,则提示错误;
(5)调用双端口RAM写入函数和地址寄存器写入函数,将编码需要的信息位,写入双端口RAM,并将起始地址写入地址寄存器;
(6)调用命令寄存器写入函数,写入控制命令,开始编码;
(7)等待响应编码完成中断,若超过1s钟系统未能响应中断则提示错误;否则编码完成,则表示完成了一次编码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510729937.7A CN105281786A (zh) | 2015-11-02 | 2015-11-02 | 一种应用于嵌入式系统的bch编码装置及其控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510729937.7A CN105281786A (zh) | 2015-11-02 | 2015-11-02 | 一种应用于嵌入式系统的bch编码装置及其控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105281786A true CN105281786A (zh) | 2016-01-27 |
Family
ID=55150210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510729937.7A Pending CN105281786A (zh) | 2015-11-02 | 2015-11-02 | 一种应用于嵌入式系统的bch编码装置及其控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105281786A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109036493A (zh) * | 2018-06-11 | 2018-12-18 | 西北工业大学 | 一种具有检错纠错机制的NAND Flash控制器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101175077A (zh) * | 2007-10-26 | 2008-05-07 | 华中科技大学 | 光纤通道知识产权核 |
CN101848311A (zh) * | 2010-02-21 | 2010-09-29 | 哈尔滨工业大学 | 基于Avalon总线JPEG2000的EBCOT编码器 |
CN202710997U (zh) * | 2012-07-20 | 2013-01-30 | 南京科远驱动技术有限公司 | 一种用于伺服驱动系统的编码器接口ip核 |
-
2015
- 2015-11-02 CN CN201510729937.7A patent/CN105281786A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101175077A (zh) * | 2007-10-26 | 2008-05-07 | 华中科技大学 | 光纤通道知识产权核 |
CN101848311A (zh) * | 2010-02-21 | 2010-09-29 | 哈尔滨工业大学 | 基于Avalon总线JPEG2000的EBCOT编码器 |
CN202710997U (zh) * | 2012-07-20 | 2013-01-30 | 南京科远驱动技术有限公司 | 一种用于伺服驱动系统的编码器接口ip核 |
Non-Patent Citations (1)
Title |
---|
蔡恒 等: "BCH编译码器的FPGA设计及SoPC验证", 《电子技术应用》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109036493A (zh) * | 2018-06-11 | 2018-12-18 | 西北工业大学 | 一种具有检错纠错机制的NAND Flash控制器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101573760B (zh) | 具有处于相同分级层级的易失性及非易失性存储器装置的存储器系统及方法 | |
CN101162449B (zh) | Nand flash控制器及其与nand flash芯片的数据交互方法 | |
KR101730306B1 (ko) | 메모리에서의 오류 정정 | |
CN101882119B (zh) | 与非型闪存控制器及其数据传输方法 | |
CN101504692B (zh) | 一种验证和测试片上系统的系统及方法 | |
CN110689915B (zh) | 经由主机/串行接口的远程ssd调试及其执行方法 | |
CN102520961B (zh) | 片外在线可编程的soc系统及其控制方法 | |
US20200125443A1 (en) | Fast page continuous read | |
CN108052750B (zh) | 基于fpga的spi flash控制器及其设计方法 | |
CN105404538A (zh) | 一种fpga的加载和升级目标代码的装置及方法 | |
CN103324583A (zh) | 一种光纤陀螺离线高速数据采集方法 | |
CN105335548A (zh) | 一种用于ice的mcu仿真方法 | |
CN110727543A (zh) | 一种商用非对称密码算法硬件模块 | |
CN109493910A (zh) | 微控制器及其操作方法以及具有该微控制器的存储系统 | |
CN103544994A (zh) | 快闪存储器控制器、快闪存储器侦错方法 | |
CN115080471A (zh) | 基于FPGA的nand flash接口控制器及读写方法 | |
CN109525844B (zh) | 一种多路视频编解码的加速系统及方法 | |
CN103226977B (zh) | 基于fpga的快速nand flash控制器及其控制方法 | |
CN103793263A (zh) | 一种基于PowerPC处理器的DMA事务级建模方法 | |
CN105281786A (zh) | 一种应用于嵌入式系统的bch编码装置及其控制方法 | |
CN105023616A (zh) | 一种基于汉明码存取数据的方法及集成随机存取存储器 | |
US11755525B2 (en) | System including PIPE5 to PIPE4 converter and method thereof | |
CN103389923A (zh) | 随机存储器访问总线ecc校验装置 | |
CN112988449B (zh) | 写入页面群组的数据到闪存模块的装置及方法 | |
CN105163108A (zh) | 一种图像数据模拟源 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160127 |
|
RJ01 | Rejection of invention patent application after publication |