WO2006012771A1 - A multi-channel hdlc controller - Google Patents

A multi-channel hdlc controller Download PDF

Info

Publication number
WO2006012771A1
WO2006012771A1 PCT/CN2004/000889 CN2004000889W WO2006012771A1 WO 2006012771 A1 WO2006012771 A1 WO 2006012771A1 CN 2004000889 W CN2004000889 W CN 2004000889W WO 2006012771 A1 WO2006012771 A1 WO 2006012771A1
Authority
WO
WIPO (PCT)
Prior art keywords
channel
data
receiving
buffer
sending
Prior art date
Application number
PCT/CN2004/000889
Other languages
French (fr)
Chinese (zh)
Inventor
Jiajin Chen
Zong Zhao
Gangyue He
Xu Chen
Jian He
Jian Wang
Original Assignee
Zte Corporation
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zte Corporation filed Critical Zte Corporation
Priority to CNB2004800436602A priority Critical patent/CN100446578C/en
Priority to PCT/CN2004/000889 priority patent/WO2006012771A1/en
Publication of WO2006012771A1 publication Critical patent/WO2006012771A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols

Definitions

  • the present invention relates to the field of T1/E1 communications, and in particular to a multi-channel advanced data link (HDLC) controller.
  • HDLC high-channel advanced data link
  • the controllers using the multi-channel HDLC mainly have the following two types.
  • One is a multi-channel HDLC controller of the type Conexant CN8472/8474, which uses a non-RISC (reduced instruction set computer structure), full circuit implementation, a total of 128 channels, the 128 channel HDLC is processed by the serial port interface, bit (bit) Level processing, interrupt processing controller, DMA controller, PCI (peripheral component expansion interface) bus interface.
  • bit (bit) Level processing bit (bit) Level processing
  • interrupt processing controller DMA controller
  • PCI peripheral component expansion interface
  • the multi-channel HDLC controller has the following two problems: First, a large amount of hardware resources are required for storing temporary parameters, and a lot of temporary parameters are required in the working process of the controller, including: receiving temporary loop redundancy for each channel Remainder code CRC (32 bits), receive temporary buffer pointer for each channel (32 bits), available length of receive temporary buffer for each channel (14 bits), transmit temporary cyclic redundancy for each channel Code CRC (32 bits), send temporary buffer pointer (32 bits) per channel, transmit temporary buffer available length (14 bits) per channel; then for 128 such channels, internal hardware needs There are (32+32+14+32+32+14) times 128 (channels) of RAM to store these temporary parameters. The above are the temporary parameters necessary for the HDLC controller to work.
  • the HDLC controller uses ping-pong FIFO to implement data transfer.
  • the receive FIFO and transmit FIFO are shown in Figure 1 and Figure 2.
  • the FIFO is divided into two equal-space RAM structures. The data is first written to one of the RAMs. When the write is full, it is switched to another RAM structure to operate. The interrupt is given to the DMA controller, and the DMA controller will fetch its data. After such a ping-pong FIFO-side is occupied by the write data port, the read data port can only access the other half of the FIFO, or wait for the port to be released before being accessed, thereby causing waste of resources.
  • the second is the MPC8260 communication processor produced by Motorola, USA. As shown in Figure 3, there are two 128-channel HDLC communication interfaces inside. The disadvantage of this solution is that its multi-channel HDLC cannot operate independently. There is a RISC for implementing the same configuration and control of multi-channel HDLC, data organization and data scheduling, and controlling other peripherals to achieve the same functionality as the Conexant CN8472/8474 multi-channel HDLC controller. Therefore, the communication processor requires a RISC module on the hardware, and the module has a corresponding interface to the multi-channel HDLC and other peripherals to facilitate control of the RISC module; it is also necessary to write code for the RISC module. This design is complex and requires a long design cycle.
  • the technical problem to be solved by the present invention is to provide a multi-channel advanced data link controller, which solves the disadvantages of large hardware resources consumption, insufficient use of FIFO resources, and difficulty in implementation in the prior art, and uses external resources to implement internal operations. .
  • the multi-channel advanced data link controller of the present invention comprises a time division multiplexed data receiving processing module, a receiving channel processor, a receiving monitor, a receiving buffer, a receiving engine, a sending engine, a sending buffer, a sending monitor, and a sending Channel processor, time division multiplexed data transmission processing module, and AHB bus interface;
  • the time division multiplexed data receiving processing module is configured to receive data from a serial interface, and convert the data into 8-bit parallel data, and output the data to the receiving channel processor;
  • the receiving channel processor is configured to remove, by the channel number, the zero inserted in the received data, and output the result to the receiving monitor;
  • the receiving monitor is configured to store data into the receiving buffer by channel number, monitor the capacity of the receiving buffer, and send a data request to the receiving and receiving;
  • the receiving buffer is configured to temporarily store the received data
  • the receiving engine is configured to perform cyclic redundancy check processing on the data, perform read and write operations on the buffer descriptor, and perform data transfer according to the requirements of the buffer descriptor, and then write the corresponding interrupt into the memory.
  • the sending engine is configured to perform read and write operations on the buffer descriptor, perform data transfer according to the requirements of the buffer descriptor, perform cyclic redundancy check processing, and write the corresponding interrupt into the memory;
  • the sending buffer is configured to temporarily store and send data
  • the sending monitor is configured to read data from the sending buffer and transmit the data to the sending channel processor according to an application of the sending channel processor, and according to the capacity of the sending buffer, Transmitting engine application data;
  • the sending channel processor is configured to perform a zero insertion operation on the data transmitted by the sending monitor by using a channel as a number;
  • the time division multiplexed data transmission processing module is configured to read a channel number from a slot number, and read channel data according to the channel number, and convert 8-bit parallel data into serial data output;
  • the AHB bus interface is coupled to the receiving engine and the transmitting engine for converting internal bus behavior to AHB bus behavior.
  • the invention adopts a non-RISC design and a full circuit implementation, does not need to adopt a universal RISC, and sets a special interface for the HDLC, and has a low design difficulty; the present invention stores the temporary parameters required for the operation of the multi-channel HDLC controller in the memory, thereby saving
  • the hardware resources of the multi-channel HDLC controller itself, the hardware resources saved are (( 32+32+14 ) (number of bits in the transmission part) + ( 32+32+14 ) (number of bits in the receiving part)) *128 (pass At the same time, the system only needs to allocate a memory space when using the multi-channel HDLC controller.
  • the receiving buffer and the transmitting buffer adopt a FIFO structure, and the read and write operations can be simultaneously operated.
  • the space size of the FIFO is dynamically allocated, and the number of timeslots is allocated, and the FIFO space is allocated more and occupied. A channel with a small number of time slots allocates less FIFO space.
  • FIG. 1 is a schematic diagram of a receiving FIFO of a Conexant CN8472/8474 multi-channel HDLC controller in the prior art
  • FIG. 2 is a schematic diagram of a transmit FIFO of a Conexant CN8472/8474 multi-channel HDLC controller in the prior art
  • FIG. 3 is a schematic diagram of a multi-channel HDLC structure of a Motorola MPC 8260 in the prior art; and FIG. 4 is a schematic structural view of a multi-channel HDLC controller of the present invention.
  • FIG. 1 to FIG. 3 are described in the background art, and are not described herein again.
  • the multi-channel HDLC controller of the present invention organizes data in a multi-channel HDLC manner and then passes
  • the time division multiplexing (TDM) interface transmits data and is connected to the system memory using the HDLC controller through the AHB (AMBA) bus interface.
  • AHB AHB
  • the temporary parameters required for the operation of some HDLC controllers are placed in the HDLC controller. In addition, these parameters are called externally by internal logic.
  • the multi-channel HDLC controller of the present invention includes: a time division multiplexing data receiving processing module, a receiving channel processor, a receiving monitor, a receiving buffer, a receiving engine, a sending engine, a sending buffer, a sending monitor, The transmit channel processor, the time division multiplexed data transmission processing module, and the AHB bus interface.
  • the various components of a multi-channel HDLC controller are described below in terms of both received data and transmitted data.
  • time-division multiplexed data receiving and processing module After the time-division multiplexed data receiving and processing module receives data from the TDM serial interface, since the subsequent data processing is in units of bytes, it is necessary to convert the data from the serial data into 8-bit parallel data and output it to the receiving channel processor. .
  • TDM is numbered in time slots, and subsequent processing is numbered by channel number, so the processing of 4 bar TDM is also required to be separated from the subsequent process of channel numbering.
  • the receiving channel processor After receiving the parallel data transmitted by the processing module, the receiving channel processor processes the channel number as the number. Although these parallel data are in units of bytes, the zero insertion operation has actually been performed, so the receiving channel processor needs to remove the zeros inserted in the data, so that the subsequent functional modules can actually operate in the smallest unit of bytes. .
  • the data after the divide-by-zero operation is transferred to the receive monitor.
  • the receiving monitor stores the received data in the receiving buffer by channel, and monitors the capacity of the receiving buffer. When it reaches the threshold, it generates a corresponding data transmission request to the receiving engine, and the threshold is generally 4 Bytes or 16 bytes or one frame ends. To increase bus utilization, data is typically sent out when it accumulates to one word (4 bytes).
  • the receiving buffer temporarily stores the data transmitted from the receiving monitor, and accumulates 4 bytes for the receiving engine.
  • the above data The capacity of this buffer is dynamically assignable and can be adjusted according to the actual situation.
  • the buffer can be implemented in FIFO.
  • some information required for the operation of the HDLC controller can be stored in the memory, such as temporarily receiving the cyclic redundancy check code CRC (32 bits), the receive buffer temporary pointer (32 bits), Receive buffer temporary usable length (14 bits) and some control status information of the channel.
  • CRC cyclic redundancy check code
  • the receive buffer temporary pointer 32 bits
  • Receive buffer temporary usable length 14 bits
  • some control status information of the channel can be stored in the memory, such as temporarily receiving the cyclic redundancy check code CRC (32 bits), the receive buffer temporary pointer (32 bits), Receive buffer temporary usable length (14 bits) and some control status information of the channel.
  • the receiving engine After receiving the data request from the receiving monitor, the receiving engine operates in two phases: If the receiving engine finds that the received data is the beginning of a frame, or there is no valid buffer descriptor (buffer descr i Ptor (abbreviated as BD), the receiving engine reads the BD from the specified channel BD table of the memory through the AHB bus interface, obtains the parameters on the BD, starts to carry the data according to the address given by the BD, and confirms whether the length of the BD is sufficient.
  • buffer descr i Ptor abbreviated as BD
  • Temporary As a temporary CRC (32-bit) in the parameter table, save the current address to the specified channel (temporary) As a temporary pointer (32 bits) of the receive buffer, the length of the data that can be transferred at that time is stored in the specified channel (temporary) parameter table as the temporary usable length of the receive buffer (14 bits), and other Parameters. Then exit this channel operation.
  • the receiving engine reads the received temporary CRC (32 bits) from the specified channel (temporary) parameter table of the memory through the AHB bus interface.
  • the engine will be used as the initial value of the CRC for the CRC operation), the receive buffer temporary pointer (32 bits) (the receiving engine uses this pointer as the starting point of the address for data transfer), and the receive buffer is temporarily available (14 bits).
  • Control information such as (receiving engine for length control), and then start receiving buffer
  • the data transmitted by the device is subjected to CRC processing, and data is carried at the same time, and it is confirmed whether the length of the BD is sufficient to carry the amount of data transmitted: if the length of the BD is insufficient or just satisfied, or the length of the BD exceeds the data transmission amount However, in the data transmission, if there is a message ending in the data, the status is written back to the BD after the data transfer is completed, and the BD is closed at the same time, if the BD length exceeds the magnitude of the data transmission, and the data is transmitted.
  • the current CRC value is stored in the specified channel (temporary) parameter table as a temporary CRC (32-bit), and the current address is stored in the designated channel ( Temporary) parameter table as a temporary pointer of the receive buffer (32 bits), the length of the data that can be transferred at that time is stored in the specified channel (temporary) parameter table as the temporary usable length of the receive buffer (14 bits), There are other parameters. Then exit the operation of this channel.
  • the AHB bus interface acts as a connection between the multi-channel HDLC controller and the AHB bus to convert the HDLC internal bus behavior to the standard AHB bus behavior.
  • the sending engine After receiving the application sent by the sending monitor, the sending engine will also have two phases of operation, which is similar to the receiving, except that the flow of data is opposite to the receiving. Similarly, in order to save the hardware resources of the HDLC controller, the HDLC controller works. Some of the required information is stored in the memory, such as the cyclic redundancy code CRC (32 bits), the send buffer temporary pointer (32 bits), the send buffer temporary available length (14 bits), and the channel. Some control status information, after the end of each BD operation, will return the corresponding frame information back to the BD.
  • CRC cyclic redundancy code
  • the sending engine Since the sending engine is a batch of incoming data, and the sending channel only needs to read one byte at a time, it is necessary to temporarily store the bulk data transmitted by the sending engine.
  • the buffer is provided for the temporary storage space. Make the bus more efficient.
  • the transmit buffer is implemented in FIFO, and its capacity is dynamically assignable, which can be adjusted according to actual conditions.
  • the sending monitor reads data from the sending buffer according to the data request of the sending channel processor, and transmits the data to the sending channel processor; and applies data to the sending engine according to the free amount of the sending buffer at the time, and the application condition is the channel. It is enabled, and the transmit buffer has 4 bytes for this channel or more than 16 slots.
  • the transmit channel processor processes the data transmitted by the transmit monitor with the channel number.
  • the data sent from the monitor is in bytes, but it is not the final data format. It needs to be inserted before the data is sent.
  • the time division multiplexed data transmission processing module obtains data from the transmission channel processor, and then converts the data into serial data for transmission. Since the previous data processing is in units of bytes, the data needs to be converted from 8-bit parallel data to serial. Data, similar to reception, TDM is numbered in time slots, and subsequent processing is numbered by channel number, so it is also necessary to separate the time division multiplexed data transmission processing module from other channel numbered modules.
  • a multi-channel HDLC controller can support up to 32 channels, and four multi-channel HDLC controllers can support up to 128 channels.
  • the multi-channel HDLC controller of the invention can be used as a communication module of the S0C chip to realize the docking of the multi-channel HDLC and the system, and supports the BD mode, and can actively transfer the data to the user-specified memory space.
  • the multi-channel HDLC controller must have a separate AHB s lave port, which can be considered as part of the AHB bus interface for the system to configure the HDLC controller.
  • the multi-channel HDLC controller must also be an AHB Mas ter. It can be regarded as part of the AHB bus interface, and can actively perform data transfer according to the requirements of the BD, and identify the state of the frame data on the BD after the data transfer is completed.
  • the multi-channel HDLC controller uses the standard AHB bus interface.
  • the AHB bus interface is the most common in the S0C chip, which makes the HDLC controller a standard module and easy to port to other S0Cs. In the chip.
  • the S0C chip is actually a multi-layer AHB bus system. At the same time, as long as different AHB Mas ters access different AHB Slave spaces, the operation of each AHB Mas ter will not be affected. At the same time, there are multiple memories in the S0C chip. Space, where SRAM space and SDRAM space can be used to store information about the operation of the HDLC controller.
  • each channel receives a temporary CRC (32 bits), sends a temporary CRC (32 bits), receives a buffer temporary pointer (32 bits), sends a buffer temporary pointer (32 bits), receives a buffer temporarily Available length (14 bits), send buffer temporarily available length (14 bits) and other information.
  • the SDRAM space has a larger capacity than the SRAM space and is used to store the BD table for each channel and the buffer pointed to by the BD table.

Abstract

The mufti-channel HDLC controller of the present invention is used for realizing butt joint between the mufti-channel HDLC and the system, organizing data in manner of mufti-channel HDLC, then transmitting the data through the TDM interface, and connecting with the memory of the system which using the HDLG controller through the AHB bus interface at the same time. In the present invention, a part of temporary parameters that the HDLC controller needs are placed outside of the HDLC controller, and calling the parameters from the outside through inner logic. The present invention adopts non-RSIC design, all circuit realization, and needn't to adopt general RSIC, and it sets special interface for the HDLC, the difficulty of the setting is small; the present invention stores the temporary parameters that the HDLC controller needs for operation into the memory, which saves the hardware resource of the mufti-channel HDLC controller itself. Moreover, for the transmitting and receiving of the mufti-channel data of the mufti-channel HDLC controller, all channels of one mufti-channel HDLC controller share a set of controlling logic, which also saves many hardware resources.

Description

一种多通道高级数据链路控制器 技术领域  Multi-channel advanced data link controller
本发明涉及 T1 /E1通信领域, 具体地说, 涉及一种多通道的高级数据链路 ( HDLC )控制器。  The present invention relates to the field of T1/E1 communications, and in particular to a multi-channel advanced data link (HDLC) controller.
背景技术 Background technique
现有技术中, 采用多通道 HDLC的控制器主要有下述两种。  In the prior art, the controllers using the multi-channel HDLC mainly have the following two types.
一种是型号为 Conexant CN8472/8474的多通道 HDLC控制器,它采用非 RISC (精简指令集计算机结构)、 全电路实现, 共有 128个通道, 该 128通道 HDLC 由串口处理接口, 位(b i t )级别处理, 中断处理控制器, DMA控制器, PCI (周 边元件扩展接口 )总线接口组成。  One is a multi-channel HDLC controller of the type Conexant CN8472/8474, which uses a non-RISC (reduced instruction set computer structure), full circuit implementation, a total of 128 channels, the 128 channel HDLC is processed by the serial port interface, bit (bit) Level processing, interrupt processing controller, DMA controller, PCI (peripheral component expansion interface) bus interface.
但该多通道 HDLC控制器存在如下两个的问题: 首先, 需要大量的硬件资源 用于存放临时参数,在控制器的工作过程中需要很多的临时参数, 包括:每个通 道的接收临时循环冗余校验码 CRC( 32位)、每个通道的接收临时緩沖区指针( 32 位)、 每个通道的接收临时緩冲区可用长度(14位)、 每个通道的发送临时循环 冗余校 码 CRC ( 32位)、 每个通道的发送临时緩冲区指针( 32位)、 每个通道 的发送临时緩冲区可用长度(14位); 那么对于 128个这样的通道, 则硬件内 部需要有 (32+32+14+32+32+14)乘以 128个(通道数 )的 RAM来存放这些临时参 数。 以上是 HDLC控制器工作必须的临时参数,如果想提升 HDLC控制器的性能, 每个通道还需要存放更多的临时参数,这样将耗费大量的硬件资源。其次, HDLC 控制器的内部采用乒乓 FIFO来实现数据中转, 其接收 FIFO和发送 FIFO如图 1 和图 2所示。 其 FIFO都分成两个相等空间的 RAM结构, 数据先向其中一个 RAM 写入数据, 等到写满之后, 就换到另外一个 RAM结构进行操作, 同时产生一个 中断给 DMA控制器, DMA控制器会去取出其数据。 这样的乒乓 FIFO—端被写数 据端口占用之后, 读数据端口就只能访问另一半 FIFO, 或者等待端口被释放后 才能访问, 从而导致了资源的浪费。 However, the multi-channel HDLC controller has the following two problems: First, a large amount of hardware resources are required for storing temporary parameters, and a lot of temporary parameters are required in the working process of the controller, including: receiving temporary loop redundancy for each channel Remainder code CRC (32 bits), receive temporary buffer pointer for each channel (32 bits), available length of receive temporary buffer for each channel (14 bits), transmit temporary cyclic redundancy for each channel Code CRC (32 bits), send temporary buffer pointer (32 bits) per channel, transmit temporary buffer available length (14 bits) per channel; then for 128 such channels, internal hardware needs There are (32+32+14+32+32+14) times 128 (channels) of RAM to store these temporary parameters. The above are the temporary parameters necessary for the HDLC controller to work. If you want to improve the performance of the HDLC controller, each channel needs to store more temporary parameters, which will consume a lot of hardware resources. Secondly, the HDLC controller uses ping-pong FIFO to implement data transfer. The receive FIFO and transmit FIFO are shown in Figure 1 and Figure 2. The FIFO is divided into two equal-space RAM structures. The data is first written to one of the RAMs. When the write is full, it is switched to another RAM structure to operate. The interrupt is given to the DMA controller, and the DMA controller will fetch its data. After such a ping-pong FIFO-side is occupied by the write data port, the read data port can only access the other half of the FIFO, or wait for the port to be released before being accessed, thereby causing waste of resources.
第二种是美国摩托罗拉公司生产的 MPC8260通信处理器, 如图 3所示, 其 内部有两个 128 通道的 HDLC通信接口, 这种方案的缺点在于它的多通道 HDLC 是不能独立运作的, 需要有一个 RISC来实现对多通道 HDLC的配置与控制、 数 据的组织和数据的调度,并控制其它外设,以此来实现与 Conexant CN8472/8474 多通道 HDLC控制器相同的功能。 因此该通信处理器要求在硬件上有一个 RISC 模块, 且该模块具有与多通道 HDLC和其它外设连接的相应接口, 方便 RISC模 块进行控制; 同时还需要对该 RISC模块编写代码。 这样的设计比较复杂, 需要 较长的设计周期。  The second is the MPC8260 communication processor produced by Motorola, USA. As shown in Figure 3, there are two 128-channel HDLC communication interfaces inside. The disadvantage of this solution is that its multi-channel HDLC cannot operate independently. There is a RISC for implementing the same configuration and control of multi-channel HDLC, data organization and data scheduling, and controlling other peripherals to achieve the same functionality as the Conexant CN8472/8474 multi-channel HDLC controller. Therefore, the communication processor requires a RISC module on the hardware, and the module has a corresponding interface to the multi-channel HDLC and other peripherals to facilitate control of the RISC module; it is also necessary to write code for the RISC module. This design is complex and requires a long design cycle.
发明内容 Summary of the invention
本发明所要解决的技术问题在于提供一种多通道高级数据链路控制器, 解 决现有技术中硬件资源耗费量大、 FIFO资源不能充分使用以及实现难度大的缺 点, 利用外部资源来实现内部运算。  The technical problem to be solved by the present invention is to provide a multi-channel advanced data link controller, which solves the disadvantages of large hardware resources consumption, insufficient use of FIFO resources, and difficulty in implementation in the prior art, and uses external resources to implement internal operations. .
本发明所述多通道高级数据链路控制器,包括时分复用数据接收处理模块、 接收通道处理器、 接收监控器、 接收緩存器、 接收引擎、 发送引擎、 发送緩存 器、 发送监控器、 发送通道处理器、 时分复用数据发送处理模块以及 AHB总线 接口; 其中  The multi-channel advanced data link controller of the present invention comprises a time division multiplexed data receiving processing module, a receiving channel processor, a receiving monitor, a receiving buffer, a receiving engine, a sending engine, a sending buffer, a sending monitor, and a sending Channel processor, time division multiplexed data transmission processing module, and AHB bus interface;
所述时分复用数据接收处理模块, 用于从串行接口接收数据, 并转换为 8 位并行数据, 输出到所述接收通道处理器;  The time division multiplexed data receiving processing module is configured to receive data from a serial interface, and convert the data into 8-bit parallel data, and output the data to the receiving channel processor;
所述接收通道处理器, 用于以通道号为编号, 将接收的数据中插入的零去 除, 输出到所述接收监控器; 所述接收监控器, 用于按通道编号, 把数据存放到所述接收緩存器内, 同 时监视所述接收緩存器的容量, 向所述接收引拏发送数据申请; The receiving channel processor is configured to remove, by the channel number, the zero inserted in the received data, and output the result to the receiving monitor; The receiving monitor is configured to store data into the receiving buffer by channel number, monitor the capacity of the receiving buffer, and send a data request to the receiving and receiving;
所述接收緩存器, 用于暂存接收的数据;  The receiving buffer is configured to temporarily store the received data;
所述接收引擎, 用于对数据进行循环冗余码校验处理, 对緩冲区描述符进 行读写操作, 并按照緩冲区描述符的要求进行数据传送, 再把相应的中断写入 内存中;  The receiving engine is configured to perform cyclic redundancy check processing on the data, perform read and write operations on the buffer descriptor, and perform data transfer according to the requirements of the buffer descriptor, and then write the corresponding interrupt into the memory. Medium
所述发送引擎, 用于对緩沖区描述符进行读写操作, 并按照緩沖区描述符 的要求进行数据传送, 同时进行循环冗余码校验处理, 再把相应的中断写入内 存中;  The sending engine is configured to perform read and write operations on the buffer descriptor, perform data transfer according to the requirements of the buffer descriptor, perform cyclic redundancy check processing, and write the corresponding interrupt into the memory;
所述发送緩存器, 用于暂存发送数据;  The sending buffer is configured to temporarily store and send data;
所述发送监控器, 用于根据所述发送通道处理器的申请, 从所述发送緩存 器中读取数据并传送给所述发送通道处理器, 并根据所述发送緩存器的容量, 向所述发送引擎申请数据;  The sending monitor is configured to read data from the sending buffer and transmit the data to the sending channel processor according to an application of the sending channel processor, and according to the capacity of the sending buffer, Transmitting engine application data;
所述发送通道处理器, 用于以通道为编号, 对所述发送监控器传送的数据 进行插零操作;  The sending channel processor is configured to perform a zero insertion operation on the data transmitted by the sending monitor by using a channel as a number;
所述时分复用数据发送处理模块, 用于从时隙编号中读取通道编号, 并根 据通道编号读取通道数据, 将 8位并行数据转化为串行数据输出;  The time division multiplexed data transmission processing module is configured to read a channel number from a slot number, and read channel data according to the channel number, and convert 8-bit parallel data into serial data output;
所述 AHB总线接口, 与所述接收引擎和所述发送引擎相连, 用于将内部总 线行为转换到 AHB总线行为。  The AHB bus interface is coupled to the receiving engine and the transmitting engine for converting internal bus behavior to AHB bus behavior.
本发明采用非 RISC设计、 全电路实现, 无需采用通用的 RISC, 并为 HDLC 设置专门的接口,设计难度小; 本发明将多通道 HDLC控制器工作所需要的临时 参数存放在内存中, 节省了多通道 HDLC控制器本身的硬件资源, 节省的硬件资 源为(( 32+32+14 ) (发送部分的位数) + ( 32+32+14 ) (接收部分的位数))*128 (通 道数); 同时系统只有在使用多通道 HDLC控制器的时候, 才需要分配一个内存 空间,如果系统不使用多通道 HDLC控制器,或者在一段时间内不需要使用多通 道 HDLC控制器, 那么这个内存资源可以释放, 以作其它的用途。 此外, 对于多 通道 HDLC控制器中多通道的数据发送或者接收,并不是每个通道采用一套控制 逻辑, 而是一个多通道 HDLC控制器的所有通道共用一套控制逻辑,这是因为在 任何时间点上, 只有一个通道在工作中, 所以每个通道无需都做一套控制逻辑, 这样也节省了很多硬件资源。 本发明中接收緩存器和发送緩存器采用 FIFO 结 构, 读和写操作可以同时运行, 另外对 FIFO的空间大小采用动态分配的方式, 时隙数目多的通道,其 FIFO空间就分配多一些, 占用时隙数目少的通道就分配 少一些 FIFO空间。 The invention adopts a non-RISC design and a full circuit implementation, does not need to adopt a universal RISC, and sets a special interface for the HDLC, and has a low design difficulty; the present invention stores the temporary parameters required for the operation of the multi-channel HDLC controller in the memory, thereby saving The hardware resources of the multi-channel HDLC controller itself, the hardware resources saved are (( 32+32+14 ) (number of bits in the transmission part) + ( 32+32+14 ) (number of bits in the receiving part)) *128 (pass At the same time, the system only needs to allocate a memory space when using the multi-channel HDLC controller. If the system does not use the multi-channel HDLC controller, or does not need to use the multi-channel HDLC controller for a period of time, then this Memory resources can be freed for other uses. In addition, for multi-channel data transmission or reception in a multi-channel HDLC controller, not every channel uses a set of control logic, but all channels of a multi-channel HDLC controller share a set of control logic, because at any At the point in time, only one channel is in operation, so each channel does not need to do a set of control logic, which also saves a lot of hardware resources. In the present invention, the receiving buffer and the transmitting buffer adopt a FIFO structure, and the read and write operations can be simultaneously operated. In addition, the space size of the FIFO is dynamically allocated, and the number of timeslots is allocated, and the FIFO space is allocated more and occupied. A channel with a small number of time slots allocates less FIFO space.
附图说明 DRAWINGS
图 1是现有技术中 Conexant CN8472/8474多通道 HDLC控制器的接收 FIFO 的示意图;  1 is a schematic diagram of a receiving FIFO of a Conexant CN8472/8474 multi-channel HDLC controller in the prior art;
图 2是现有技术中 Conexant CN8472/8474多通道 HDLC控制器的发送 FIFO 的示意图;  2 is a schematic diagram of a transmit FIFO of a Conexant CN8472/8474 multi-channel HDLC controller in the prior art;
图 3是现有技术中摩托罗拉 MPC 8260的多通道 HDLC结构示意图; 图 4是本发明多通道 HDLC控制器的结构示意图。  3 is a schematic diagram of a multi-channel HDLC structure of a Motorola MPC 8260 in the prior art; and FIG. 4 is a schematic structural view of a multi-channel HDLC controller of the present invention.
具体实施方式 detailed description
下面结合附图和实施例对本发明的技术方案做进一步的详细描述。  The technical solution of the present invention will be further described in detail below with reference to the accompanying drawings and embodiments.
图 1至图 3给出了现有技术中多通道 HDLC控制器的解决方案,在背景技术 部分已经介绍, 此处不再赘述。  The solutions of the multi-channel HDLC controller in the prior art are shown in FIG. 1 to FIG. 3, which are described in the background art, and are not described herein again.
本发明多通道 HDLC控制器将数据以多通道 HDLC方式进行组织, 然后通过 时分复用 (TDM )接口传送数据, 同时通过 AHB ( AMBA ) 总线接口与使用 HDLC 控制器的系统内存相连,在本发明中,部分 HDLC控制器工作所需的临时参数被 放在 HDLC控制器之外, 通过内部逻辑从外部调用这些参数。 The multi-channel HDLC controller of the present invention organizes data in a multi-channel HDLC manner and then passes The time division multiplexing (TDM) interface transmits data and is connected to the system memory using the HDLC controller through the AHB (AMBA) bus interface. In the present invention, the temporary parameters required for the operation of some HDLC controllers are placed in the HDLC controller. In addition, these parameters are called externally by internal logic.
如图 4所示,本发明多通道 HDLC控制器包括:时分复用数据接收处理模块、 接收通道处理器、 接收监控器、 接收缓存器、 接收引擎、 发送引擎、 发送緩存 器、 发送监控器、 发送通道处理器、 时分复用数据发送处理模块和 AHB总线接 口。下面从接收数据和发送数据两个方面来介绍多通道 HDLC控制器的各个组成 部分。  As shown in FIG. 4, the multi-channel HDLC controller of the present invention includes: a time division multiplexing data receiving processing module, a receiving channel processor, a receiving monitor, a receiving buffer, a receiving engine, a sending engine, a sending buffer, a sending monitor, The transmit channel processor, the time division multiplexed data transmission processing module, and the AHB bus interface. The various components of a multi-channel HDLC controller are described below in terms of both received data and transmitted data.
接收数据:  Receive data:
时分复用数据接收处理模块从 TDM串行接口接收数据后, 由于后续的数据 处理都以字节为单元, 故需要将数据从串行数据转化为 8位并行数据, 并输出 到接收通道处理器。 另外, TDM是以时隙进行编号的, 而后续处理是以通道号 为编号, 因此也需要 4巴 TDM的处理与后续以通道编号的处理分开。  After the time-division multiplexed data receiving and processing module receives data from the TDM serial interface, since the subsequent data processing is in units of bytes, it is necessary to convert the data from the serial data into 8-bit parallel data and output it to the receiving channel processor. . In addition, TDM is numbered in time slots, and subsequent processing is numbered by channel number, so the processing of 4 bar TDM is also required to be separated from the subsequent process of channel numbering.
接收通道处理器收到时分复用接收处理模块传送来的并行数据后, 以通道 号为编号进行处理。 这些并行数据虽然以字节为单元, 但实际上已经进行了插 零操作, 所以接收通道处理器需要去除数据中插入的零, 这样后续的功能模块 才可以真正地以字节为最小单元进行操作。 经过除零操作的数据传送到接收监 控器。  After receiving the parallel data transmitted by the processing module, the receiving channel processor processes the channel number as the number. Although these parallel data are in units of bytes, the zero insertion operation has actually been performed, so the receiving channel processor needs to remove the zeros inserted in the data, so that the subsequent functional modules can actually operate in the smallest unit of bytes. . The data after the divide-by-zero operation is transferred to the receive monitor.
接收监控器将收到的数据按通道存放在接收緩存器中, 并监视接收緩存器 的容量, 当其达到门限值后, 向接收引擎产生相应的数据传送申请, 其门限值 一般为 4个字节或 16个字节或是一帧结束。 为了提高总线利用率,数据一般积 累到一个字 (4个字节) 时才发送出去。  The receiving monitor stores the received data in the receiving buffer by channel, and monitors the capacity of the receiving buffer. When it reaches the threshold, it generates a corresponding data transmission request to the receiving engine, and the threshold is generally 4 Bytes or 16 bytes or one frame ends. To increase bus utilization, data is typically sent out when it accumulates to one word (4 bytes).
接收緩存器对接收监控器传过来的数据进行暂存, 为接收引擎积累 4字节 以上的数据。 这个緩存器的容量是动态可分配的, 可才艮据实际情况进行调节。 在实际中, 緩存器可采用 FIFO实现。 The receiving buffer temporarily stores the data transmitted from the receiving monitor, and accumulates 4 bytes for the receiving engine. The above data. The capacity of this buffer is dynamically assignable and can be adjusted according to the actual situation. In practice, the buffer can be implemented in FIFO.
为了节省 HDLC控制器的硬件资源, HDLC控制器工作所需的部分信息可存 放在内存中,如临时接收循环冗余校验码 CRC (32位)、接收緩冲区临时指针(32 位)、 接收緩沖区临时可用长度(14位)以及通道的一些控制状态信息。  In order to save the hardware resources of the HDLC controller, some information required for the operation of the HDLC controller can be stored in the memory, such as temporarily receiving the cyclic redundancy check code CRC (32 bits), the receive buffer temporary pointer (32 bits), Receive buffer temporary usable length (14 bits) and some control status information of the channel.
接收引擎在收到接收监控器发来的数据申请后, 分两个阶段进行操作: 如果接收引擎发现接到的数据是一帧的开始, 或者当时没有有效的緩冲区 描述符(buffer descr i ptor , 简称 BD ), 则接收引擎通过 AHB总线接口从内存 的指定通道 BD表内读取 BD, 得到 BD上的参数, 按照 BD给出的地址开始搬运 数据, 并确认此 BD的长度是否足够装下此次传送的数据: 如果 BD不够或者刚 好满足此次操作,或者 BD长度超过此次数据传送量,但是在数据传送中发现数 据内有一帧结束的信息, 则在数据传送完成之后, 把状态回写, 同时关闭 BD; 如果 BD长度超过此次数据传送的量值,并且在数据传送中没有发现数据内有一 帧结束的信息, 则在数据传送完成之后, 把当时的 CRC值存到指定通道(临时) 参数表内作为临时 CRC ( 32位), 把当时的地址存到指定通道(临时)参数表内 作为接收緩冲区临时指针(32位), 把当时的还可以传送的数据长度存到指定通 道(临时)参数表内作为接收緩冲区临时可用长度(14位), 还有其它的参数。 然后退出此通道操作。  After receiving the data request from the receiving monitor, the receiving engine operates in two phases: If the receiving engine finds that the received data is the beginning of a frame, or there is no valid buffer descriptor (buffer descr i Ptor (abbreviated as BD), the receiving engine reads the BD from the specified channel BD table of the memory through the AHB bus interface, obtains the parameters on the BD, starts to carry the data according to the address given by the BD, and confirms whether the length of the BD is sufficient. The data to be transmitted next: If the BD is not enough or just meets the operation, or the BD length exceeds the data transfer amount, but the data is found to have a frame end information in the data transfer, after the data transfer is completed, the status is Write back, close BD at the same time; If the BD length exceeds the value of this data transmission, and there is no information in the data transmission that there is a frame end in the data transmission, after the data transmission is completed, the current CRC value is stored in the designated channel. (Temporary) As a temporary CRC (32-bit) in the parameter table, save the current address to the specified channel (temporary) As a temporary pointer (32 bits) of the receive buffer, the length of the data that can be transferred at that time is stored in the specified channel (temporary) parameter table as the temporary usable length of the receive buffer (14 bits), and other Parameters. Then exit this channel operation.
如果接收到的数据不是一帧的开始, 并且当时的 BD还没有用完, 则接收引 擎通过 AHB总线接口从内存的指定通道(临时)参数表内,读取接收临时 CRC (32 位) (接收引擎会用作 CRC的初值, 进行 CRC运作)、 接收緩沖区临时指针(32 位) (接收引擎以此指针作为地址的起点, 进行数据的搬运)、 接收緩沖区临时 可用长度(14位) (接收引擎用于长度控制)等控制信息, 然后开始对接收緩存 器传送来的数据进行 CRC处理, 同时进行数据的搬运, 并确认此 BD的长度是否 足够装下此次传送的数据量: 如果 BD的长度不够或者刚好满足, 或者 BD长度 超过此次数据传送量, 但是在数据传送中发现数据内有一帧结束的信息, 则在 数据传送完成之后, 把状态回写到 BD上, 同时关闭 BD, 如果 BD长度超过此次 数据传送的量值, 并且在数据传送中没有发现数据内有一帧结束的信息, 则在 数据传送完成之后, 把当时的 CRC值存到指定通道(临时)参数表内作为临时 CRC ( 32位), 把当时的地址存到指定通道(临时)参数表内作为接收緩冲区临 时指针(32位), 把当时的还可以传送的数据长度存到指定通道(临时)参数表 内作为接收緩冲区临时可用长度(14位), 还有其它的参数。 然后退出此通道的 操作。 If the received data is not the beginning of a frame, and the BD is not used up yet, the receiving engine reads the received temporary CRC (32 bits) from the specified channel (temporary) parameter table of the memory through the AHB bus interface. The engine will be used as the initial value of the CRC for the CRC operation), the receive buffer temporary pointer (32 bits) (the receiving engine uses this pointer as the starting point of the address for data transfer), and the receive buffer is temporarily available (14 bits). Control information such as (receiving engine for length control), and then start receiving buffer The data transmitted by the device is subjected to CRC processing, and data is carried at the same time, and it is confirmed whether the length of the BD is sufficient to carry the amount of data transmitted: if the length of the BD is insufficient or just satisfied, or the length of the BD exceeds the data transmission amount However, in the data transmission, if there is a message ending in the data, the status is written back to the BD after the data transfer is completed, and the BD is closed at the same time, if the BD length exceeds the magnitude of the data transmission, and the data is transmitted. If no information is found in the end of the data, after the data transfer is completed, the current CRC value is stored in the specified channel (temporary) parameter table as a temporary CRC (32-bit), and the current address is stored in the designated channel ( Temporary) parameter table as a temporary pointer of the receive buffer (32 bits), the length of the data that can be transferred at that time is stored in the specified channel (temporary) parameter table as the temporary usable length of the receive buffer (14 bits), There are other parameters. Then exit the operation of this channel.
AHB总线接口作为多通道 HDLC控制器与 AHB总线的连接口 , 实现 HDLC内 部总线行为到标准 AHB总线行为的转换。  The AHB bus interface acts as a connection between the multi-channel HDLC controller and the AHB bus to convert the HDLC internal bus behavior to the standard AHB bus behavior.
发送数据:  send data:
发送引擎在收到发送监控器发来的申请后, 同样会有两个阶段的操作, 这 与接收相似, 只是数据的流向与接收相反, 同样为了节省 HDLC控制器的硬件资 源, HDLC控制器工作所需的部分信息存放在内存中, 如临发送时循环冗余校险 码 CRC (32位)、发送緩沖区临时指针(32位)、发送緩冲区临时可用长度(14位) 以及通道的一些控制状态信息,在每个 BD操作结束之后,都会把相应的帧信息 逸回到 BD内。  After receiving the application sent by the sending monitor, the sending engine will also have two phases of operation, which is similar to the receiving, except that the flow of data is opposite to the receiving. Similarly, in order to save the hardware resources of the HDLC controller, the HDLC controller works. Some of the required information is stored in the memory, such as the cyclic redundancy code CRC (32 bits), the send buffer temporary pointer (32 bits), the send buffer temporary available length (14 bits), and the channel. Some control status information, after the end of each BD operation, will return the corresponding frame information back to the BD.
由于发送引擎是一次传入批量数据,而发送通道每次只要求读取一个字节, 因此需要对发送引擎传送的批量数据进行暂存, 提供这个暂存空间的就是发送 緩存器, 这样操作可使总线有更高的运作效率。发送缓存器采用 FIFO实现, 其 容量是动态可分配的, 可 ^^据实际情况进行调节。 发送监控器根据发送通道处理器的数据申请, 从发送緩存器中读取数据, 传送给发送通道处理器; 并根据当时发送緩存器的空余量, 向发送引擎申请数 据, 申请的条件是该通道是使能状态, 并且发送緩存器对应此通道有 4个字节 或者有 16个节字以上的空余。 Since the sending engine is a batch of incoming data, and the sending channel only needs to read one byte at a time, it is necessary to temporarily store the bulk data transmitted by the sending engine. The buffer is provided for the temporary storage space. Make the bus more efficient. The transmit buffer is implemented in FIFO, and its capacity is dynamically assignable, which can be adjusted according to actual conditions. The sending monitor reads data from the sending buffer according to the data request of the sending channel processor, and transmits the data to the sending channel processor; and applies data to the sending engine according to the free amount of the sending buffer at the time, and the application condition is the channel. It is enabled, and the transmit buffer has 4 bytes for this channel or more than 16 slots.
发送通道处理器以通道为编号, 对发送监控器传过来的数据进行处理。 发 送监控器传来的数据是以字节为单元的, 但并不是最终的数据格式, 需在发送 数据之前进行插零操作。  The transmit channel processor processes the data transmitted by the transmit monitor with the channel number. The data sent from the monitor is in bytes, but it is not the final data format. It needs to be inserted before the data is sent.
时分复用数据发送处理模块从发送通道处理器获得数据, 再把数据转换为 串行数据传送出去, 由于之前的数据处理都以字节为单元, 需要将数据从 8位 并行数据转换为串行数据, 另外与接收相似, TDM是以时隙进行编号的, 而后 续处理是以通道号为编号, 因此也需要把时分复用数据发送处理模块与其它以 通道编号的模块分开。  The time division multiplexed data transmission processing module obtains data from the transmission channel processor, and then converts the data into serial data for transmission. Since the previous data processing is in units of bytes, the data needs to be converted from 8-bit parallel data to serial. Data, similar to reception, TDM is numbered in time slots, and subsequent processing is numbered by channel number, so it is also necessary to separate the time division multiplexed data transmission processing module from other channel numbered modules.
对本发明来说, 一个多通道 HDLC控制器可支持 32通道, 4个多通道 HDLC 控制器共可支持 128通道。  For the purposes of the present invention, a multi-channel HDLC controller can support up to 32 channels, and four multi-channel HDLC controllers can support up to 128 channels.
本发明多通道 HDLC控制器可以作为 S0C芯片的通信模块的一部分,实现多 通道 HDLC与系统的对接, 并支持 BD方式, 可以主动地 4巴数据传送到用户指定 的内存空间内。 多通道 HDLC控制器必须有一个独立的 AHB s lave端口, 可视为 AHB总线接口的一部分, 用于系统对 HDLC控制器进行配置操作, 同时该多通道 HDLC控制器还必须是一个 AHB Mas ter, 可视为 AHB总线接口的一部分, 能够主 动按照 BD的要求进行数据传送, 并在数据传送完成之后, 在 BD上标识这一帧 数据的状态。  The multi-channel HDLC controller of the invention can be used as a communication module of the S0C chip to realize the docking of the multi-channel HDLC and the system, and supports the BD mode, and can actively transfer the data to the user-specified memory space. The multi-channel HDLC controller must have a separate AHB s lave port, which can be considered as part of the AHB bus interface for the system to configure the HDLC controller. The multi-channel HDLC controller must also be an AHB Mas ter. It can be regarded as part of the AHB bus interface, and can actively perform data transfer according to the requirements of the BD, and identify the state of the frame data on the BD after the data transfer is completed.
多通道 HDLC控制器采用标准的 AHB总线接口 , AHB总线接口在 S0C芯片中 最为常见, 这样可以使 HDLC控制器成为一个标准的模块, 容易移植到其它 S0C 芯片中。 The multi-channel HDLC controller uses the standard AHB bus interface. The AHB bus interface is the most common in the S0C chip, which makes the HDLC controller a standard module and easy to port to other S0Cs. In the chip.
S0C 芯片实际上是多层 AHB 总线系统, 在同一时刻内, 只要不同的 AHB Mas ter访问不同的 AHB Slave空间, 则各 AHB Mas ter的运作就不会受到影响; 同时 S0C芯片内有多个内存空间,其中 SRAM空间和 SDRAM空间可用于存储 HDLC 控制器运作的有关信息。  The S0C chip is actually a multi-layer AHB bus system. At the same time, as long as different AHB Mas ters access different AHB Slave spaces, the operation of each AHB Mas ter will not be affected. At the same time, there are multiple memories in the S0C chip. Space, where SRAM space and SDRAM space can be used to store information about the operation of the HDLC controller.
SRAM空间比较小, 支持 BURST操作。 从 SRAM空间读写数据, 可以每个时 钟返回一个 32位数据,这样为部分临时参数存放到内存里提供了可行的物质基 础, 因此, 将每个通道运作所需要的一些临时参数存放在 SRAM空间内, 例如每 个通道的接收临时 CRC ( 32位), 发送临时 CRC ( 32位 ), 接收緩冲区临时指针 ( 32位), 发送緩冲区临时指针(32位), 接收緩冲区临时可用长度(14位), 发送緩冲区临时可用长度(14位)等信息。 SDRAM空间的容量比 SRAM空间大,用 于存放每个通道的 BD表以及 BD表指向的緩冲区。  SRAM space is relatively small, supporting BURST operation. Reading and writing data from the SRAM space can return a 32-bit data per clock, which provides a feasible material basis for storing some temporary parameters into the memory. Therefore, some temporary parameters required for each channel operation are stored in the SRAM space. Within, for example, each channel receives a temporary CRC (32 bits), sends a temporary CRC (32 bits), receives a buffer temporary pointer (32 bits), sends a buffer temporary pointer (32 bits), receives a buffer temporarily Available length (14 bits), send buffer temporarily available length (14 bits) and other information. The SDRAM space has a larger capacity than the SRAM space and is used to store the BD table for each channel and the buffer pointed to by the BD table.
对于多通道 HDLC控制器来说, 实际上并不知道哪一区是高速内存空间,哪 一区是中速大容量空间, 用户甚至可以把每个通道的基地址、 运作指针、 运作 所需要的一些临时参数、 BD表以及指向的緩冲区都放在同一个内存空间内。 但 从优化流程的角度来看, 最好是将运作所需要的一些临时参数存放在高速内存 空间中, 而将每个通道的 BD表以及緩冲区存放在中速大容量空间里。  For a multi-channel HDLC controller, you don't actually know which area is the high-speed memory space, and which area is the medium-speed and large-capacity space. Users can even put the base address, operation pointer, and operation required for each channel. Some temporary parameters, BD tables, and pointed buffers are all placed in the same memory space. However, from the perspective of the optimization process, it is better to store some temporary parameters required for operation in the high-speed memory space, and store the BD table and buffer of each channel in the medium-speed large-capacity space.
最后所应说明的是, 以上实施例仅用以说明本发明的技术方案而非限制, 尽管参照较佳实施例对本发明进行了详细说明 , 本领域的普通技术人员应当理 解, 可以对本发明的技术方案进行修改或者等同替换, 而不脱离本发明技术方 案的精神和范围, 其均应涵盖在本发明的权利要求范围当中。  It should be noted that the above embodiments are only intended to illustrate the technical solutions of the present invention and are not intended to be limiting, and the present invention will be described in detail with reference to the preferred embodiments. The modifications and equivalents of the present invention are intended to be included within the scope of the appended claims.

Claims

权利要求书 Claim
1、 一种多通道高级数据链路控制器, 其特征在于, 包括时分复用数据接 收处理模块、 接收通道处理器、 接收监控器、 接收緩存器、 接收引擎、 发送引 擎、 发送緩存器、 发送监控器、 发送通道处理器、 时分复用数据发送处理模块 以及 AHB总线接口; 其中  A multi-channel advanced data link controller, comprising: a time division multiplexed data receiving processing module, a receiving channel processor, a receiving monitor, a receiving buffer, a receiving engine, a sending engine, a sending buffer, and a sending a monitor, a transmit channel processor, a time division multiplexed data transmission processing module, and an AHB bus interface;
所述时分复用数据接收处理模块, 用于从串行接口接收数据, 并转换为 8 位并行数据, 输出到所述接收通道处理器;  The time division multiplexed data receiving processing module is configured to receive data from a serial interface, and convert the data into 8-bit parallel data, and output the data to the receiving channel processor;
所述接收通道处理器, 用于以通道号为编号, 将接收的数据中插入的零去 除, 输出到所述接收监控器;  The receiving channel processor is configured to remove, by the channel number, the zero inserted in the received data, and output the result to the receiving monitor;
所述接收监控器, 用于按通道编号, 把数据存放到所述接收緩存器内, 监 视所述接收緩存器的容量, 向所述接收引擎发送数据申请; 所述接收缓存器, 用于暂存接收的数据;  The receiving monitor is configured to store data into the receiving buffer by a channel number, monitor a capacity of the receiving buffer, and send a data request to the receiving engine; the receiving buffer is configured to temporarily Store received data;
所述接收引擎, 用于对数据进行循环冗余码校验处理, 对緩沖区描述符进 行读写操作, 并按照緩冲区描述符的要求进行数据传送, 再把相应的中断写入 内存中;  The receiving engine is configured to perform cyclic redundancy check processing on the data, perform read and write operations on the buffer descriptor, and perform data transfer according to the requirements of the buffer descriptor, and then write the corresponding interrupt into the memory. ;
所述发送引擎, 用于对缓沖区描述符进行读写操作, 并按照緩冲区描述符 的要求进行数据传送, 同时进行循环冗余码校验处理, 再把相应的中断写入内 存中; 所述发送緩存器, 用于暂存发送数据;  The sending engine is configured to perform read and write operations on the buffer descriptor, perform data transfer according to the requirements of the buffer descriptor, perform cyclic redundancy check processing, and write the corresponding interrupt into the memory. The sending buffer is configured to temporarily store and send data;
所述发送监控器, 用于根据所述发送通道处理器的申请, 从所述发送緩存 器中读取数据并传送给所述发送通道处理器, 并根据所述发送緩存器的容量, 向所述发送引擎申请数据;  The sending monitor is configured to read data from the sending buffer and transmit the data to the sending channel processor according to an application of the sending channel processor, and according to the capacity of the sending buffer, Transmitting engine application data;
所述发送通道处理器, 用于以通道为编号, 对所述发送监控器传送的数据 进行插零操作; 所述时分复用数据发送处理模块, 用于从时隙编号中读取通道编号, 并根 据通道编号读取通道数据, 将 8位并行数据转化为串行数据输出; The sending channel processor is configured to perform a zero insertion operation on the data transmitted by the sending monitor by using a channel number; The time division multiplexed data transmission processing module is configured to read a channel number from a slot number, and read channel data according to the channel number, and convert 8-bit parallel data into serial data output;
所述 AHB总线接口, 与所述接收引擎和所述发送引擎相连, 用于将内部总 线行为转换到 AHB总线行为。  The AHB bus interface is coupled to the receiving engine and the transmitting engine for converting internal bus behavior to AHB bus behavior.
2、 根据权利要求 1所述的多通道高级数据链路控制器, 其特征在于, 所 述接收监控器监视所述接收缓存器的容量到达门限值后, 向所述接收引擎发送 数据申请。  2. The multi-channel advanced data link controller of claim 1, wherein the receiving monitor transmits a data request to the receiving engine after monitoring a capacity of the receiving buffer to reach a threshold.
3、 根据权利要求 2所述的多通道高级数据链路控制器, 其特征在于, 所 述门限值是 4个字节或 16个字节或是一帧结束。  3. The multi-channel advanced data link controller of claim 2, wherein the threshold is 4 bytes or 16 bytes or a frame ends.
4、 根据权利要求 1所述的多通道高级数据链路控制器, 其特征在于, 所 述发送监控器向所述发送引擎申请数据的条件是该通道是使能状态, 并且所述 发送緩存器对应该通道有 4个字节或 16个字节以上的空余。  The multi-channel advanced data link controller according to claim 1, wherein the condition that the sending monitor applies for data to the sending engine is that the channel is enabled, and the sending buffer The corresponding channel has 4 bytes or more than 16 bytes of free space.
5、 根据权利要求 1所述的多通道高级数据链路控制器, 其特征在于, 所 述内存中存放有每个通道运作所需的临时参数、 每个通道的緩冲区描述符表以 及緩冲区描述符表指向的缓冲区。  The multi-channel advanced data link controller according to claim 1, wherein the memory stores temporary parameters required for each channel operation, a buffer descriptor table for each channel, and a buffer table. The buffer pointed to by the flush descriptor table.
6、 根据权利要求 4所述的多通道高级数据链路控制器, 其特征在于, 所 述每个通道运作所需的临时参数存放在高速内存空间中, 而每个通道的緩冲区 描述符表以及緩冲区存放在中速大容量空间中。  6. The multi-channel advanced data link controller according to claim 4, wherein the temporary parameters required for each channel operation are stored in a high-speed memory space, and the buffer descriptor of each channel is Tables and buffers are stored in medium-speed and large-capacity space.
7、 根据权利要求 1所述的多通道高级数据链路控制器, 其特征在于, 所 述接收引擎 /发送引擎在收到接收监控器 /发送监控器发来的数据申请后, 需先 通过 AHB总线接口从内存中读取临时参数及緩沖区描述符表。  7. The multi-channel advanced data link controller according to claim 1, wherein the receiving engine/transmitting engine needs to pass the AHB after receiving the data request sent by the receiving monitor/transmitting monitor. The bus interface reads temporary parameters and buffer descriptor tables from memory.
8、 根据权利要求 1所述的多通道高级数据链路控制器, 其特征在于, 所 述接收緩存器 /发送緩存器采用先进先出緩冲器实现, 其容量是动态可分配的。  8. The multi-channel advanced data link controller of claim 1 wherein said receive buffer/transmission buffer is implemented in a first in first out buffer having a capacity that is dynamically assignable.
PCT/CN2004/000889 2004-08-02 2004-08-02 A multi-channel hdlc controller WO2006012771A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CNB2004800436602A CN100446578C (en) 2004-08-02 2004-08-02 Multi-channel high-grade data link controller
PCT/CN2004/000889 WO2006012771A1 (en) 2004-08-02 2004-08-02 A multi-channel hdlc controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2004/000889 WO2006012771A1 (en) 2004-08-02 2004-08-02 A multi-channel hdlc controller

Publications (1)

Publication Number Publication Date
WO2006012771A1 true WO2006012771A1 (en) 2006-02-09

Family

ID=35786858

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2004/000889 WO2006012771A1 (en) 2004-08-02 2004-08-02 A multi-channel hdlc controller

Country Status (2)

Country Link
CN (1) CN100446578C (en)
WO (1) WO2006012771A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012155703A1 (en) * 2011-09-16 2012-11-22 中兴通讯股份有限公司 Link parameter autonegotiation method, terminal and system based on hdlc protocol
CN103118005A (en) * 2013-01-04 2013-05-22 中国兵器工业集团第二一四研究所苏州研发中心 High-level data link control (HDLC) protocol controller
CN110134365A (en) * 2019-05-21 2019-08-16 合肥工业大学 A kind of multi-channel parallel reads the method and device of FIFO

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013227059A1 (en) * 2013-12-23 2015-06-25 Robert Bosch Gmbh METHOD FOR DETERMINISTIC DATA TRANSMISSION IN A BUS SYSTEM AND BUS SYSTEM
CN111343106B (en) * 2020-02-25 2023-03-24 母国标 Multi-channel intermediate frequency digital signal processing device and method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1249876A (en) * 1997-12-31 2000-04-05 阿尔卡塔尔公司 Subscriber card, subscriber connecting unit and relay centre for concentrating internet frames
WO2003005794A1 (en) * 2001-07-12 2003-01-23 Telefonaktiebolaget Lm Ericsson Multi-channel hdlc controller

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7096261B2 (en) * 2001-03-12 2006-08-22 Qualcomm Incorporated Method and apparatus for providing multiple quality of service levels in a wireless packet data services connection
US9100457B2 (en) * 2001-03-28 2015-08-04 Qualcomm Incorporated Method and apparatus for transmission framing in a wireless communication system
CN100393014C (en) * 2002-06-13 2008-06-04 中兴通讯股份有限公司 Apparatus and method for implementing optical monitoring channel of dense wavelength division multiplex system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1249876A (en) * 1997-12-31 2000-04-05 阿尔卡塔尔公司 Subscriber card, subscriber connecting unit and relay centre for concentrating internet frames
WO2003005794A1 (en) * 2001-07-12 2003-01-23 Telefonaktiebolaget Lm Ericsson Multi-channel hdlc controller

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012155703A1 (en) * 2011-09-16 2012-11-22 中兴通讯股份有限公司 Link parameter autonegotiation method, terminal and system based on hdlc protocol
CN103118005A (en) * 2013-01-04 2013-05-22 中国兵器工业集团第二一四研究所苏州研发中心 High-level data link control (HDLC) protocol controller
CN110134365A (en) * 2019-05-21 2019-08-16 合肥工业大学 A kind of multi-channel parallel reads the method and device of FIFO
CN110134365B (en) * 2019-05-21 2022-10-11 合肥工业大学 Method and device for reading FIFO (first in first out) in parallel by multiple channels

Also Published As

Publication number Publication date
CN100446578C (en) 2008-12-24
CN1994002A (en) 2007-07-04

Similar Documents

Publication Publication Date Title
EP1428131B1 (en) Multiple channel interface for communications between devices
US8520563B2 (en) Interface device, communications system, non-volatile storage device, communication mode switching method and integrated circuit
US6954806B2 (en) Data transfer apparatus and method
EP0498201A2 (en) Generic high bandwidth adapter architecture
KR20110113351A (en) Soc-based system network protocol for network efficiency
US7054986B2 (en) Programmable CPU/interface buffer structure using dual port RAM
JP2002204253A (en) Host processor in asynchronous transfer mode, interface unit for inter-digital signal processor transfer, and data processing system using the same
JP2005050324A (en) Interface conversion system and its method
JP2004171209A (en) Shared memory data transfer device
US9471521B2 (en) Communication system for interfacing a plurality of transmission circuits with an interconnection network, and corresponding integrated circuit
JP2004334417A (en) Data transfer control device, electronic device and data transfer control method
US7337382B2 (en) Data transfer control device, electronic instrument, and data transfer control method
JP2011243142A (en) Communication control device, data communication method and program
US7603488B1 (en) Systems and methods for efficient memory management
US20030101311A1 (en) Bus system and bus interface for connection to a bus
US8527671B2 (en) DMA engine
US20040017772A1 (en) Data transfer control device, electronic equipment, and data transfer control method
WO2006012771A1 (en) A multi-channel hdlc controller
GB2377138A (en) Ring Bus Structure For System On Chip Integrated Circuits
US20040250056A1 (en) System boot method
KR20040106665A (en) Transceiving network controller providing for common buffer memory allocating corresponding to transceiving flows and method thereof
KR100348545B1 (en) Communication dma device
CN219916336U (en) LPC interface to AXI bus protocol bridge
US20240004816A1 (en) Interface method for transmitting and recieving data between functional blocks in system on chip, and system on chip using same
JP2002176464A (en) Network interface device

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 200480043660.2

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 585/KOLNP/2007

Country of ref document: IN

122 Ep: pct application non-entry in european phase