KR101256886B1 - High speed asynchronous serial communication controller to support a user defined serial communication protocol - Google Patents

High speed asynchronous serial communication controller to support a user defined serial communication protocol Download PDF

Info

Publication number
KR101256886B1
KR101256886B1 KR1020110081874A KR20110081874A KR101256886B1 KR 101256886 B1 KR101256886 B1 KR 101256886B1 KR 1020110081874 A KR1020110081874 A KR 1020110081874A KR 20110081874 A KR20110081874 A KR 20110081874A KR 101256886 B1 KR101256886 B1 KR 101256886B1
Authority
KR
South Korea
Prior art keywords
frame
serial communication
user
receiver
message
Prior art date
Application number
KR1020110081874A
Other languages
Korean (ko)
Other versions
KR20130019735A (en
Inventor
권용성
박남열
임승철
이용환
이종국
Original Assignee
국방과학연구소
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 국방과학연구소 filed Critical 국방과학연구소
Priority to KR1020110081874A priority Critical patent/KR101256886B1/en
Publication of KR20130019735A publication Critical patent/KR20130019735A/en
Application granted granted Critical
Publication of KR101256886B1 publication Critical patent/KR101256886B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum

Abstract

본 발명은 사용자 정의 직렬통신 프로토콜을 지원하는 고속 비동기 직렬통신 제어기에 관한 것으로, 호스트 인터페이스부, 보드 레이트 발생기, 바이트 송신 제어기, 송신기 FIFO 버퍼, 프레임 송신 제어기, 송신기 입력 먹스, 노이즈 필터, 바이트 수신 제어기, 프레임 수신기, 수신기 출력 먹스, 수신기 FIFO 버퍼, Rx Timeout 타이머, 레지스터, 및 인터럽트 제어기로 구성된다. 비동기 직렬통신 제어기는 호스트 컴퓨터의 CPU와의 인터페이스의 데이터 버스를 8비트 또는 16비트로 선택가능하며, 가변길이 사용자 프로토콜을 지원하는 동시에 자동 통신오류 검출과 정정기능, 자동 통신코드 삽입과 메시지 필터링 기능,노이즈 필터링 기능을 제공한다. 자동 통신오류 검출 및 정정 기능은 메시지 프레임의 길이를 나타내는 정보를 통신오류 발생시 제한적으로 오류를 정정하는 해밍코드를 적용하고 메시지 프레임의 마지막 코드에 CRC16 오류검출 정보를 두어 전체 통신데이터에 오류가 있는지를 검사하여 하드웨어에서 자동으로 처리하여 CPU 시간자원 점유를 최소화한다. 자동 통신코드 삽입과 메시지 필터링 기능은 메시지 프레임의 첫 번째 코드에 메시지의 시작코드를 자동 삽입하고 미리 지정된 장치 ID와 통신 메시지 프레임의 수신기 ID가 일치하지 않는 경우 수신한 메시지를 자동 폐기한다. 노이즈 필터링 기능은 수신되는 데이터에 대하여 8비트 중 3비트 이하의 노이즈를 필터링한다.The present invention relates to a high speed asynchronous serial communication controller supporting a user-defined serial communication protocol, comprising: a host interface unit, a baud rate generator, a byte transmission controller, a transmitter FIFO buffer, a frame transmission controller, a transmitter input mux, a noise filter, a byte reception controller Frame receiver, receiver output mux, receiver FIFO buffer, Rx Timeout timer, register, and interrupt controller. The asynchronous serial communication controller selects 8-bit or 16-bit data bus interface with the host computer's CPU. It supports variable length user protocol, automatic error detection and correction, automatic communication code insertion and message filtering. Provide filtering function. The automatic communication error detection and correction function applies Hamming code that restricts the error in case of a communication error to the information indicating the length of the message frame, and puts CRC16 error detection information in the last code of the message frame to check whether there is an error in the entire communication data. Inspected and processed automatically by the hardware to minimize CPU time resource occupancy. The automatic communication code insertion and message filtering function automatically inserts the start code of the message in the first code of the message frame and automatically discards the received message if the predetermined device ID and the receiver ID of the communication message frame do not match. The noise filtering function filters noise of 3 bits or less out of 8 bits with respect to the received data.

Description

사용자 정의 직렬통신 프로토콜을 지원하는 고속 비동기 직렬통신 제어기{High speed asynchronous serial communication controller to support a user defined serial communication protocol}High speed asynchronous serial communication controller to support a user defined serial communication protocol}

본 발명은 비동기 직렬통신 제어기에 관한 것으로, 보다 구체적으로는 사용자 정의 직렬통신 프로토콜 프레임을 사용하여 최대 8채널로 각 채널별 독립적으로 최대 10Mbps의 통신속도를 지원하고, 호스트 컴퓨터의 CPU와 인터페이스의 데이터버스를 8비트 또는 16비트로 선택가능하며, 가변길이 사용자 정의 직렬통신 프로토콜을 지원하는 동시에 자동 통신오류 검출과 정정기능, 자동 통신코드 삽입과 메시지 필터링 기능, 노이즈 필터링 기능을 제공하는, 사용자 정의 직렬통신 프로토콜을 지원하는 고속 비동기 직렬통신 제어기에 관한 것이다.The present invention relates to an asynchronous serial communication controller, and more specifically, up to 8 channels using a user-defined serial communication protocol frame to support the communication speed of up to 10Mbps independently for each channel, and the data of the CPU and interface of the host computer User-defined serial communication with selectable 8-bit or 16-bit bus, support for variable length custom serial communication protocols, automatic error detection and correction, automatic communication code insertion and message filtering, and noise filtering A high speed asynchronous serial communication controller supporting a protocol.

일반적으로 직렬통신 제어기는 호스트 컴퓨터 마이크로컨트롤러(CPU)와 인터페이스의 데이터버스(DATA BUS)를 구성하여 보통 8bit씩 데이터 송수신을 한다. 따라서, 호스트 컴퓨터의 CPU와 인터페이스 데이터 버스를 16bits로 선택적으로 연결하는 기능을 제공하지 않았고, 사용자 정의 비동기 직렬통신 프로토콜의 프레임에 따른 자동 통신오류 검출과 정정기능, 자동 통신코드 삽입과 메시지 필터링 기능, 노이즈 필터링 기능을 제공하지 않았다.In general, a serial communication controller configures a data bus of an interface with a host computer microcontroller (CPU) to transmit and receive data by 8 bits. Therefore, it does not provide the function of selectively connecting the CPU of the host computer with the interface data bus in 16bits, and the automatic communication error detection and correction function according to the frame of the user-defined asynchronous serial communication protocol, the automatic communication code insertion and message filtering function, It did not provide noise filtering.

종래 기술의 문제점을 해결하기 위한 본 발명의 목적은 호스트 컴퓨터의 CPU와 인터페이스의 데이터버스를 8비트 또는 16비트로 선택적으로 연결되고 사용자 정의 비동기 직렬통신 프로토콜의 프레임의 시작코드를 자동 생성하고 프레임 길이에 대한 Hamming 코드를 자동 생성하며 프레임 전체에 대한 CRC-16 코드를 자동생성하여 트랜시버로 전송하는 전송기능과, 트랜시버로부터 입력받은 신호에서 8비트 중 3비트 이하 노이즈를 제거하고 사용자 정의 프로토콜의 프레임의 시작코드를 자동 검출하고 프레임 길이에 대한 Hamming 코드를 자동 디코딩하며 프레임 전체에 대한 CRC-16 코드를 자동 검사하는 동시에 프레임의 수신기 ID 정보를 이용한 자동 메시지 필터링 기능을 제공하며, 최대 8채널로 각 채널별 독립적으로 최대 10Mbps의 통신속도를 지원하고, 호스트 컴퓨터의 CPU와 인터페이스의 데이터버스를 8비트 또는 16비트로 선택가능하며, 가변길이 사용자 정의 직렬통신 프로토콜을 지원하는 동시에 자동 통신오류 검출과 정정기능, 자동 통신코드 삽입과 메시지 필터링 기능, 노이즈 필터링 기능을 제공하는, 사용자 정의 직렬통신 프로토콜을 지원하는 고속 비동기 직렬통신 제어기를 제공하는 것이다. Summary of the Invention An object of the present invention to solve the problems of the prior art is to selectively connect the data bus of the host computer's CPU and interface to 8-bit or 16-bit and to automatically generate the start code of the frame of the user-defined asynchronous serial communication protocol and to adjust the frame length. Automatic generation of Hamming code for the entire frame and automatic generation of the CRC-16 code for the entire frame and transmission to the transceiver, removing noise less than 3 bits out of 8 bits from the signal received from the transceiver, and starting the frame of the user defined protocol. It automatically detects the code, automatically decodes the Hamming code for the frame length, and automatically checks the CRC-16 code for the entire frame, and provides automatic message filtering using the receiver ID information of the frame. Independently supports communication speeds up to 10Mbps, and hoses 8-bit or 16-bit data bus of the computer's CPU and interface can be selected, and it supports variable length user-defined serial communication protocols, automatic communication error detection and correction, automatic communication code insertion and message filtering, and noise filtering. It is to provide a high speed asynchronous serial communication controller that supports a user-defined serial communication protocol.

상기 본 발명의 목적을 달성하기 위해, 사용자 정의 직렬통신 프로토콜을 지원하는 고속 비동기 직렬통신 제어기는, 호스트 컴퓨터의 CPU와 데이터 버스를 제어하여 데이터 버스 8비트 또는 16비트의 선택이 가능하고, 어드레스 디코더(address decoder), 읽기/쓰기 스트로브 발생기(read/write strobe generator)로 구성되는 호스트 인터페이스부; 25MHz의 클럭을 입력받아 8채널의 각 채널별로 송수신에 필요한 시스템 클럭을 생성하는 보드 레이트 발생기(Baud rate generator); 프레임 길이, 수신기 ID, 사용자가 전송하고자하는 데이터를 선입선출 방식으로 저장하여 제공하는 송신기 FIFO 버퍼(Tx FIFO); Frame 모드시 메시지 프레임의 하드웨어적으로 처리하며, 송신할 데이터에 메시지의 시작(SOM:Start of Message)를 자동 생성하며, 사용자 정의 비동기 직렬통신 프레임의 길이, 수신기ID, 예비, 데이터 필드에 대한 CRC-16 계산을 자동으로 수행하고 그 결과 값을 송신 메시지 필드(CRC-16 필드)에 실어주는 프레임 송신 제어기(Frame Transmit Controller); 각 채널의 동작모드(일반 8bits 통신 모드, frame 모드)에 따라 상기 송신기 FIFO 버퍼(Tx FIFO)로부터 1 byte(8 bits)를 그대로 직렬로 전송하거나 또는 상기 프레임 송신 제어기로부터 상기 사용자 정의 비동기 직렬통신 프로토콜의 프레임을 상기 바이트 송신 제어기로 전송하는 송신기 입력 먹스(Tx Input Mux); 상기 보드 레이트 발생기로부터 각 채널별로 송수신에 필요한 시스템 클럭을 입력받고, 상기 송신기 입력 먹스(Tx Input Mux)로부터 1 바이트(8 bits)를 입력받아 직렬로 변환하여 송신하는 바이트 송신 제어기(Byte Transmit Controller); 8 samples average filter로 구성되고, 트랜시버(Transceiver)와 통신시 수신신호에 섞여 있는 펄스성 노이즈를 제거하는 노이즈 필터; 상기 노이즈 필터로부터 입력받은 직렬 통신 데이터를 수신하여 1바이트(8bits) 병렬 데이터로 출력하는 바이트 수신 제어기(Byte Receive Controller); 프레임 수신 제어 및 상기 사용자 정의 직렬통신 프로토콜의 프레임을 저장하는 프레임 수신기; 각 채널의 동작모드(일반 8bits 통신 모드, frame 모드)에 따라 상기 바이트 수신 제어기(Byte Receive Controller)로부터 그대로 1 byte(8 bits)의 병렬 데이터를 전송하거나 또는 상기 프레임 수신기로부터 상기 사용자 정의 비동기 직렬통신 프로토콜의 프레임을 전송하는 수신기 출력 먹스(Rx Output Mux); 상기 수신기 출력 먹스(Rx Output Mux)로부터 1 byte(8 bits)의 병렬 데이터 또는 상기 사용자 정의 비동기 직렬통신 프로토콜의 프레임을 선입선출 방식으로 저장하고, 상기 호스트 인퍼페이스부로 전송하는 수신기 FIFO 버퍼(Rx FIFO); 수신대기시간의 한계 시간을 설정하고, 16bits 타이머로 구성되는 Rx Timeout 타이머(Receive timeout timer); 상기 송신기 FIFO 버퍼(Tx FIFO) 및 상기 수신기 FIFO 버퍼(Rx FIFO)의 상태 정보를 저장하고, 8채널의 각 채널의 동작모드(일반 8bits 통신 모드, frame 모드)를 제어하는 레지스터; 및 폴링 엣지 트리거(Falling edge trigger)를 사용하여 8채널에서 발생하는 인터럽트를 종합하여 모든 인터럽트를 다중화하여 1개의 인터럽트(IRn: Interrupt Request, n은 Active Low(Low 일때만 동작))로 출력하여 호스트 컴퓨터의 CPU로 인터럽트 처리를 요청하는 인터럽트 제어기로 구성된다.In order to achieve the object of the present invention, a high-speed asynchronous serial communication controller supporting a user-defined serial communication protocol, the data bus 8 bits or 16 bits can be selected by controlling the CPU and data bus of the host computer, address decoder a host interface configured of an address decoder and a read / write strobe generator; A baud rate generator for receiving a clock of 25 MHz and generating a system clock for transmitting and receiving for each channel of eight channels; A transmitter FIFO buffer (Tx FIFO) for storing and providing a frame length, a receiver ID, and data to be transmitted by the user in a first-in first-out manner; It handles hardware of message frame in Frame mode, and automatically generates Start of Message (SOM) in the data to be sent, CRC for user defined asynchronous serial communication frame length, receiver ID, spare and data fields. A Frame Transmit Controller that automatically performs the -16 calculation and places the resulting value in a transmission message field (CRC-16 field); Depending on the operation mode (general 8bits communication mode, frame mode) of each channel, serial transmission of 1 byte (8 bits) from the transmitter FIFO buffer (Tx FIFO) as it is, or from the frame transmission controller to the user-defined asynchronous serial communication protocol A transmitter input mux for transmitting a frame of the signal to the byte transmission controller; A byte transmit controller for receiving a system clock necessary for transmission and reception for each channel from the baud rate generator, receiving 1 byte (8 bits) from the transmitter input mux, and converting it serially. ; A noise filter comprising an 8 samples average filter and removing pulsed noise mixed in a received signal when communicating with a transceiver; A byte reception controller for receiving serial communication data received from the noise filter and outputting the data as one byte of parallel data; A frame receiver for storing frame reception control and a frame of the user defined serial communication protocol; According to the operation mode (general 8bits communication mode, frame mode) of each channel, 1 byte (8 bits) of parallel data is directly transmitted from the byte receive controller or the user-defined asynchronous serial communication from the frame receiver. A receiver output mux for sending frames of the protocol; A receiver FIFO buffer (Rx FIFO) for storing 1 byte (8 bits) of parallel data from the receiver output mux or a frame of the user-defined asynchronous serial communication protocol in a first-in first-out manner and transmitting the same to the host interface unit. ); An Rx Timeout Timer (Receive timeout timer) configured to set a limit time of the reception wait time and constitute a 16bits timer; A register for storing state information of the transmitter FIFO buffer (Tx FIFO) and the receiver FIFO buffer (Rx FIFO), and controlling an operation mode (general 8 bits communication mode, frame mode) of each channel of eight channels; And multiplexing all interrupts by combining the interrupts from 8 channels using Falling edge trigger and output as one interrupt (IRn: Interrupt Request, n is Active Low). It consists of an interrupt controller that requests interrupt processing from the computer's CPU.

본 발명에 따른 사용자 정의 직렬통신 프로토콜을 지원하는 고속 비동기 직렬통신 제어기는 사용자 정의 직렬통신 프로토콜 프레임을 사용하여 최대 8채널로 각 채널별 독립적으로 최대 10Mbps의 통신속도를 지원하고, 호스트 컴퓨터의 CPU와의 인터페이스를 8비트 또는 16비트로 선택가능하며, 가변길이 사용자 정의 직렬통신 프로토콜을 지원하는 동시에 자동 통신오류 검출과 정정기능, 자동 통신코드 삽입과 메시지 필터링 기능, 노이즈 필터링 기능을 제공한다. The high-speed asynchronous serial communication controller supporting the user-defined serial communication protocol according to the present invention supports a communication speed of up to 10 Mbps independently of each channel with up to 8 channels using a user-defined serial communication protocol frame, and with the CPU of the host computer. The interface is selectable for 8-bit or 16-bit and supports variable length user-defined serial communication protocols, while providing automatic communication error detection and correction, automatic communication code insertion and message filtering, and noise filtering.

비동기 직렬통신 제어기는 호스트 컴퓨터의 CPU사이의 데이터 인터페이스의 데이터 버스를 8비트 또는 16비트 인터페이스로 선택가능하고, 자동 통신오류 검출 및 정정 기능에 의해 사용자 정의 비동기 직렬통신 프로토콜의 메시지 프레임의 길이를 나타내는 정보를 통신오류 발생시 제한적으로 오류를 정정할 수 있는 Hamming 코드를 적용하고, 메시지 프레임의 마지막 코드에 CRC16 오류검출 정보를 두어 전체 통신데이터에 오류가 있는지를 검사하며, 이러한 기능은 비동기 직렬통신 제어기의 하드웨어에서 자동으로 처리하여 CPU 시간자원 점유를 최소화하였다.The asynchronous serial communication controller selects the data bus of the data interface between the CPUs of the host computer as an 8-bit or 16-bit interface and indicates the length of the message frame of the user-defined asynchronous serial communication protocol by the automatic communication error detection and correction function. Apply Hamming code that can correct the information in case of communication error, and put CRC16 error detection information in the last code of the message frame to check whether there is an error in the entire communication data. Automated processing in hardware minimizes CPU time resources.

도 1은 본 발명에 따른 사용자 정의 직렬통신 프로토콜을 지원하는 고속 비동기 직렬통신 제어기 구성도이다. 1 is a block diagram of a high speed asynchronous serial communication controller supporting a user-defined serial communication protocol according to the present invention.

이하, 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 그 구성과 동작을 상세하게 설명한다. Hereinafter, with reference to the accompanying drawings, preferred embodiments of the present invention will be described in detail the configuration and operation.

도 1은 본 발명에 따른 사용자 정의 직렬통신 프로토콜을 지원하는 고속 비동기 직렬통신 제어기의 구성도이다. 1 is a block diagram of a high speed asynchronous serial communication controller supporting a user-defined serial communication protocol according to the present invention.

본 발명에 따른 비동기 직렬통신 제어기는 사용자 정의 비동기 직렬통신 프로토콜의 프레임을 사용하여 최대 8채널로 각 채널별 독립적으로 최대 10Mbps의 통신속도를 지원하고, CPU와의 인터페이스를 8비트 또는 16비트로 선택가능하며, 가변길이 사용자 정의 직렬통신 프로토콜을 지원하는 동시에 자동 통신오류 검출과 정정기능, 자동 통신코드 삽입과 메시지 필터링 기능, 노이즈 필터링 기능을 제공한다.The asynchronous serial communication controller according to the present invention supports a communication speed of up to 10 Mbps independently for each channel using a frame of a user-defined asynchronous serial communication protocol, and selects an interface with the CPU as 8 bits or 16 bits. It also supports variable length user defined serial communication protocols, and provides automatic communication error detection and correction, automatic communication code insertion and message filtering, and noise filtering.

비동기 직렬통신 제어기는 호스트 컴퓨터의 CPU사이의 데이터 인터페이스의 데이터 버스를 8비트 또는 16비트 인터페이스로 선택가능하다.The asynchronous serial communication controller selects the data bus of the data interface between the CPUs of the host computer as an 8-bit or 16-bit interface.

비동기 직렬통신 제어기의 자동 통신오류 검출 및 정정 기능은 사용자 정의 비동기 직렬통신 프로토콜의 메시지 프레임의 길이를 나타내는 정보를 통신오류 발생시 제한적으로 오류를 정정할 수 있는 Hamming 코드를 적용하고, 메시지 프레임의 마지막 코드에 CRC16 오류검출 정보를 두어 전체 통신데이터에 오류가 있는지를 검사한다. 이러한 기능은 비동기 직렬통신 제어기의 하드웨어에서 자동으로 처리하여 CPU 시간자원 점유를 최소화한다.The automatic communication error detection and correction function of the asynchronous serial communication controller applies a Hamming code that can correct errors in case of a communication error with information indicating the length of the message frame of the user-defined asynchronous serial communication protocol, and the last code of the message frame. CRC16 error detection information is placed in to check whether there is an error in the entire communication data. This feature is handled automatically by the hardware of the asynchronous serial communication controller to minimize CPU time resource occupancy.

비동기 직렬통신 제어기의 자동 통신코드 삽입과 메시지 필터링 기능은 사용자 정의 비동기 직렬통신 프로토콜의 프레임의 첫 번째 코드에 메시지의 시작을 알리는 시작코드를 자동 삽입한다. 비동기 직렬통신 제어기는 미리 지정된 장치ID와 통신 메시지 프레임의 수신기 ID가 일치하지 않는 경우 수신한 메시지를 자동으로 폐기한다.The automatic communication code insertion and message filtering function of the asynchronous serial communication controller automatically inserts the start code to indicate the start of the message in the first code of the frame of the user-defined asynchronous serial communication protocol. The asynchronous serial communication controller automatically discards the received message if the predetermined device ID and the receiver ID of the communication message frame do not match.

비동기 직렬통신 제어기의 노이즈 필터링 기능은 수신되는 신호(데이터)에 대하여 8비트 중 3비트 이하의 노이즈에 대하여 필터링한다.The noise filtering function of the asynchronous serial communication controller filters out noise of 3 bits or less of 8 bits with respect to the received signal (data).

본 발명에 따른 사용자 정의 비동기 직렬통신 프로토콜을 지원하는 고속 비동기 직렬 통신 제어기의 각 블록별 상세 기능은 다음과 같이 설명한다.Detailed functions of each block of the high speed asynchronous serial communication controller supporting the user-defined asynchronous serial communication protocol according to the present invention will be described as follows.

도 1을 참조하면, 비동기 직렬통신 제어기는 호스트 인터페이스부(10), 보드 레이트 발생기(Baud rate generator)(20), 바이트 송신 제어기(Byte Transmit Controller)(30), 송신기 FIFO 버퍼(Tx FIFO)(40), 프레임 송신 제어기(Frame Transmit Controller)(41), 송신기 입력 먹스(Tx Input Mux)(42), 노이즈 필터(50), 바이트 수신 제어기(Byte Rx Controller)(54), 프레임 수신기(60), 수신기 출력 먹스(Rx Output Mux)(63), 수신기 FIFO 버퍼(Rx FIFO)(70), Rx Timeout 타이머(80), 레지스터(90), 및 인터럽트 제어기(Interrupt Controller)(100)로 구성된다.Referring to FIG. 1, the asynchronous serial communication controller includes a host interface unit 10, a baud rate generator 20, a byte transmit controller 30, a transmitter FIFO buffer (Tx FIFO) ( 40, Frame Transmit Controller 41, Transmitter Input Mux 42, Noise Filter 50, Byte Rx Controller 54, Frame Receiver 60 And a receiver output mux (63), a receiver FIFO buffer (Rx FIFO) 70, an Rx Timeout timer 80, a register 90, and an interrupt controller 100.

보드 레이트 발생기(Baud rate generator)(16 bits counter)(20)는 PLL(21), 프리스케일러(Prescaler)(22), 분주기(divider)(23)로 구성된다. The baud rate generator (16 bits counter) 20 includes a PLL 21, a prescaler 22, and a divider 23.

프레임 수신기(60)는 프레임 수신 제어기(Frame Rx Controller)(61), 프레임 버퍼(62)로 구성된다. The frame receiver 60 is composed of a frame Rx controller 61 and a frame buffer 62.

레지스터(90)는 상태 레지스터(Status Register)(91), 제어 레지스터(Control Register)(92)로 구성된다.The register 90 is composed of a status register 91 and a control register 92.

TxD는 송신기 데이터(Transmitter Data), TxE는 Transmitter Enable, RxD는 수신기 데이터(Receiver Data), RxE는 Receiver Enable을 의미한다. TxD means Transmitter Data, TxE means Transmitter Enable, RxD means Receiver Data, and RxE means Receiver Enable.

본 발명에 따른 사용자 정의 직렬통신 프로토콜을 지원하는 비동기식 직렬통신 제어기는, 호스트 컴퓨터의 CPU와의 인터페이스의 데이터버스를 8비트 또는 16비트로 선택적으로 연결되고, 사용자 정의 직렬통신 프로토콜 프레임의 시작코드(SOM: Start of Message)를 자동 생성하고 프레임 길이에 대한 Hamming 코드를 자동 생성하며 프레임 전체에 대한 CRC-16 코드를 자동생성하여 트랜시버(Transceiver)로 전송하는 전송기능과, 트랜시버(Transceiver)로부터 입력받은 신호에서 8비트 중 3비트 이하 노이즈를 제거하고 사용자 정의 비동기 직렬통신 프로토콜 프레임의 시작코드(SOM:Start of Message)를 자동 검출하고 프레임 길이에 대한 Hamming 코드를 자동 디코딩하며 프레임 전체에 대한 CRC-16 코드를 자동 검사하는 동시에 프레임 메시지의 수신기 ID 정보를 이용한 자동 메시지 필터링 기능을 갖는 통신제어 장치를 제공한다. In the asynchronous serial communication controller supporting the user-defined serial communication protocol according to the present invention, the data bus of the interface with the CPU of the host computer is selectively connected to the 8-bit or 16-bit, the start code (SOM :) of the user-defined serial communication protocol frame It automatically generates Start of Message, automatically generates Hamming code for the frame length, and automatically generates CRC-16 code for the entire frame and transmits it to the transceiver, and from the signal received from the transceiver. Eliminates noise less than 3 bits out of 8 bits, automatically detects start of message (SOM) of user-defined asynchronous serial communication protocol frame, automatically decodes Hamming code for frame length, CRC-16 code for entire frame Automated meshing using receiver ID information in frame messages while automatically checking It provides a communication control apparatus having a filtering function.

호스트 인터페이스부(10)는 호스트 컴퓨터의 CPU와 데이터 버스(Data Bus)를 제어하여 데이터 버스 8비트 또는 16비트의 선택이 가능하고, 어드레스 디코더(address decoder), 읽기/쓰기 스트로브 발생기(read/write strobe generator)로 구성되며, bus width 8 bits 또는 16 bits access가 가능하다. The host interface unit 10 selects the data bus 8 bits or 16 bits by controlling the CPU and the data bus of the host computer, and includes an address decoder and a read / write strobe generator. strobe generator) and bus width 8 bits or 16 bits can be accessed.

Addr은 호스트 컴퓨터와의 CPU 어드레스 버스(Address bus)이고, Data는 호스트 컴퓨터와의 CPU 데이터 버스(Data bus)이며, CSn은 Chip Select 신호이고(n은 Active Low), WEn은 Write Enable 신호이며(n은 Active Low), REn은 Read Enable 신호(n은 Active Low)를 나타낸다. Addr is the CPU address bus with the host computer, Data is the CPU data bus with the host computer, CSn is the Chip Select signal (n is Active Low), WEn is the Write Enable signal ( n indicates Active Low), and REn indicates Read Enable signal (n indicates Active Low).

보드 레이트 발생기(Baud rate generator)(20)는 25MHz의 클럭을 입력받아 8채널의 각 채널별로 송수신에 필요한 시스템 클럭을 생성하고, 0.003bps~10Mbps 가변 설정이 가능하다. The baud rate generator 20 receives a clock of 25 MHz, generates a system clock necessary for transmission and reception for each channel of 8 channels, and can be set to 0.003bps to 10Mbps.

보드 레이트 발생기(Baud rate generator)(16 bits counter)(20)는 25MHz의 클럭을 입력받아 80MHz로 시스템 클럭을 제공하는 위상고정루프(PLL:Phase Looked Loop)(21); 위상고정루프(PLL)(21)로부터 80MHz 시스템 클럭을 N배 하는 프리스케일러(Prescaler)(16bits adder)(22); 및 상기 프리스케일러(22)로부터 제공된 클럭을 8채널별로 각 채널별로 1/N배로 분주하여 송수신에 필요한 클럭을 생성하는 분주기(divider)(23)로 구성된다. A baud rate generator (16 bits counter) 20 includes: a phase locked loop (PLL) 21 which receives a clock of 25 MHz and provides a system clock at 80 MHz; A prescaler (16 bits adder) 22, N times the 80 MHz system clock from the phase locked loop (PLL) 21; And a divider 23 for dividing the clock provided from the prescaler 22 by 1 / N times for each channel to generate a clock required for transmission and reception.

바이트 송신 제어기(Byte Transmit Controller)(30)는 보드 레이트 발생기(20)로부터 각 채널별로 송수신에 필요한 시스템 클럭을 입력받고, 상기 송신기 입력 먹스(Tx Input Mux)로부터 1 바이트(8 bits)를 입력받아 직렬로 변환하여 송신한다. The byte transmit controller 30 receives a system clock required for transmission and reception for each channel from the baud rate generator 20, and receives 1 byte (8 bits) from the transmitter input mux. Transmit to serial.

송신기 FIFO 버퍼(Tx FIFO)(40)는 512bytes X8 구조로, 프레임 길이, 수신기 ID, 사용자가 전송하고자하는 데이터를 선입선출 방식으로 저장하여 제공한다. The transmitter FIFO buffer (Tx FIFO) 40 has a 512bytes X8 structure and stores and provides a frame length, a receiver ID, and data to be transmitted by the user in a first-in first-out manner.

프레임 송신 제어기(Frame Transmit Controller)(41)는 Frame 모드(Advanced function 모드)시 동작하며 사용자 정의 비동기 직렬통신 프로토콜의 프레임을 하드웨어적으로 처리하며, 송신할 데이터에 메시지의 시작(SOM:Start of Message)을 자동 생성하며, 필드(2)~(5)(사용자 정의 비동기 직렬통신 프로토콜의 프레임의 프레임 길이, 수신기ID, 예비, 데이터 필드)에 대한 CRC-16 계산을 자동으로 수행하고 그 결과 값을 송신 메시지 필드(CRC-16 필드)(6)에 실어준다.The Frame Transmit Controller 41 operates in Frame mode (Advanced function mode) and processes the frame of the user-defined asynchronous serial communication protocol in hardware, and starts the message on the data to be sent. ), And automatically performs CRC-16 calculations on fields (2) through (5) (frame length, receiver ID, spare, data field of user defined asynchronous serial communication protocol) It is put in the transmission message field (CRC-16 field) 6.

송신기 입력 먹스(Tx Input Mux)(42)는 각 채널의 동작모드(일반 8bits 통신 모드, frame 모드)에 따라 송신기 FIFO 버퍼(Tx FIFO)(40)로부터 1 byte(8 bits)를 그대로 직렬로 전송하거나 또는 프레임 송신 제어기(Frame Transmit Controller)(41)로부터 사용자 정의 비동기 직렬통신 프로토콜의 프레임을 바이트 송신 제어기(Byte Transmit Controller)(30)로 전송한다. The transmitter input mux 42 serially transmits 1 byte (8 bits) from the transmitter FIFO buffer (Tx FIFO) 40 as it is, according to the operation mode (general 8 bit communication mode, frame mode) of each channel. Or transmit the frame of the user-defined asynchronous serial communication protocol from the frame transmit controller 41 to the byte transmit controller 30.

노이즈 필터(Noise filter)(50)는 8 samples average filter로 구성되고, 트랜시버(Transceiver)와 통신시 수신신호에 섞여 있는 펄스성 노이즈를 제거하고, 8 sample 중 3개 이하의 펄스성 노이즈에 대하여 노이즈의 제거가 가능하다.The noise filter 50 is composed of an 8 samples average filter, removes the pulsed noise mixed in the received signal when communicating with the transceiver, and noises for 3 or less pulsed noises out of 8 samples. Can be removed.

바이트 수신 제어기(Byte Receive Controller)(54)는 노이즈 필터(Noise filter)(50)로부터 1 바이트(8 bits)의 직렬 데이터를 수신하여 병렬 데이터로 변환하여 출력한다. The byte receive controller 54 receives 1 byte (8 bits) of serial data from the noise filter 50, converts it into parallel data, and outputs the serial data.

프레임 수신기(60)는 프레임 수신 제어기(Frame Rx Controller)(61) 및 프레임 버퍼(62)로 구성되고, 프레임 수신 제어 및 사용자가 정의한 직렬통신 프로토콜의 프레임을 저장한다. The frame receiver 60 is composed of a frame Rx controller 61 and a frame buffer 62, and stores a frame of the frame reception control and a user defined serial communication protocol.

프레임 수신 제어기(Frame Receive Controller)(61)는 Frame 모드(Advanced function 모드)시 동작하며, 메시지의 시작(SOM:Start of Message)을 자동으로 검출하고, 수신기 ID(Receiver ID, 직렬통신의 대상이 되는 상대방 컴퓨터 ID)와 자신의 ID 자동으로 비교하며, 수신 메시지 프레임의 필드(2)~(5)(2:프레임 길이, 3:수신기 ID, 4:예비, 5:사용자가 전송하고자 하는 데이터)에 대한 CRC-16 계산을 수행하고, 필드(6)의 CRC-16 값과 자동으로 비교한다. CRC-16 계산 대상 필드 길이는 필드(2)의 프레임 길이(Frame Length) 값을 수신하여 확인한다. Frame Receive Controller 61 operates in Frame mode (Advanced function mode) and automatically detects Start of Message (SOM). The other party's computer ID) is automatically compared with its own ID, and fields (2) to (5) (2: frame length, 3: receiver ID, 4: spare, 5: user wants to transmit) of the received message frame. Performs a CRC-16 calculation for and automatically compares with the CRC-16 value in field (6). The CRC-16 calculation target field length is confirmed by receiving a frame length value of the field 2.

프레임 버퍼(62)는 프레임 길이, 수신기 ID, 사용자가 전송하고자 하는 데이터를 포함하는 사용자 정의 비동기 직렬통신 프로토콜의 프레임을 저장한다. The frame buffer 62 stores a frame of a user-defined asynchronous serial communication protocol including a frame length, a receiver ID, and data to be transmitted by a user.

수신기 출력 먹스(Rx Output Mux)(63)는 각 채널의 동작모드(일반 8bits 통신 모드, frame 모드)에 따라 바이트 수신 제어기(Byte Receive Controller)(54)로부터 그대로 1 byte(8 bits)의 병렬 데이터를 전송하거나 또는 프레임 수신기(60)로부터 사용자 정의 비동기 직렬통신 프로토콜의 프레임 데이터를 전송한다. The receiver output mux 63 is 1 byte (8 bits) of parallel data as it is from the byte receive controller 54 according to the operation mode (general 8 bit communication mode, frame mode) of each channel. Or transmit the frame data of the user-defined asynchronous serial communication protocol from the frame receiver 60.

수신기 FIFO 버퍼(Rx FIFO)(70)는 512bytes X8 구조로, 수신기 출력 먹스(Rx Output Mux)(63)로부터 1 byte(8 bits)의 병렬 데이터 또는 사용자 정의 비동기 직렬통신 프로토콜의 프레임을 선입선출 방식으로 저장하고, 호스트 인터페이스부(10)로 전송한다. The receiver FIFO buffer (Rx FIFO) 70 is a 512-byte X8 structure, which is a first-in, first-out method of 1 byte (8 bits) of parallel data or a user-defined asynchronous serial communication protocol from the receiver output mux 63. Store the data to the host interface 10.

Rx Timeout 타이머(Receive timeout timer)(80)는 수신대기시간의 한계 시간을 설정하고, 16bit 타이머로 구성된다. Rx Timeout Timer (Receive timeout timer) 80 is set the time limit of the waiting time, and consists of a 16-bit timer.

레지스터(90)는 송신기 FIFO 버퍼(Tx FIFO)(40) 및 수신기 FIFO 버퍼(Rx FIFO)(70)의 상태 정보를 저장하고, 8채널의 각 채널의 동작모드(일반 8bits 통신 모드, frame 모드)를 제어한다.The register 90 stores state information of the transmitter FIFO buffer (Tx FIFO) 40 and the receiver FIFO buffer (Rx FIFO) 70, and operates in each channel of eight channels (general 8 bits communication mode, frame mode). To control.

레지스터(90)는 송신기 FIFO 버퍼(Tx FIFO)(40) 및 수신기 FIFO 버퍼(Rx FIFO)(70)의 데이터를 참조하여 각각의 FIFO 버퍼의 오버플로우(overflow) 상태의 꽉찬 정보, 다 비어있는(empty) 상태의 정보를 저장하여 호스트 컴퓨터의 CPU로 알려주는 상태 레지스터(Status Register)(91); 및 8채널의 각 채널의 동작모드(일반 8bits 통신 모드, frame 모드)를 제어하는 제어 레지스터(Control Register)(92)로 구성된다. The register 90 refers to the data of the transmitter FIFO buffer (Tx FIFO) 40 and the receiver FIFO buffer (Rx FIFO) 70 to fill in the full information of the overflow state of each FIFO buffer. a status register 91 for storing information of the empty state and informing the CPU of the host computer; And a control register 92 for controlling an operation mode (general 8 bits communication mode, frame mode) of each channel of eight channels.

인터럽트 제어기(Interrupt Controller)(100)는 폴링 엣지 트리거(Falling edge trigger)를 사용하여 8채널에서 발생하는 인터럽트를 종합하여 모든 인터럽트(interrupt)를 다중화하여 1개의 인터럽트(IRn: Interrupt Request, n은 Active Low(Low 일때만 동작))로 출력하여 호스트 컴퓨터의 CPU로 인터럽트 처리를 요청한다. 인터럽트 이벤트(Interrupt event)는 인터럽트 플래그 레지스터(Interrupt flag register)를 통해 읽는다. The interrupt controller 100 uses a falling edge trigger to aggregate the interrupts generated by the eight channels to multiplex all the interrupts, thereby interrupting one interrupt (IRn: n is active). Low (operation only when Low)) to request interrupt processing to CPU of host computer. Interrupt event is read through the interrupt flag register.

본 발명에 따른 사용자 정의 직렬통신 프로토콜을 지원하는 비동기식 직렬통신 제어기는 사용자 정의 프로토콜의 하드웨어적 처리를 지원하며 최대 8 통신채널로 각 채널별 독립적으로 최대 10Mbps의 통신속도를 지원한다. 주요 특징은 다음과 같다.The asynchronous serial communication controller supporting the user-defined serial communication protocol according to the present invention supports hardware processing of the user-defined protocol and supports communication speeds up to 10 Mbps independently for each channel with up to 8 communication channels. The main features are as follows.

1) 통신 속도 : 각 채널 독립적으로 가변 설정 가능(최대 10Mbps)1) Communication speed: Variable setting independently for each channel (maximum 10Mbps)

2) 통신 채널 : 최대 8채널2) Communication Channel: Up to 8 Channels

3) 비동기식 직렬통신 제어기는 호스트 컴퓨터의 CPU와의 인터페이스이 데이터 버스를 8 비트 또는 16 비트로 선택 가능3) Asynchronous serial communication controller allows the interface with the host computer's CPU to select the data bus as 8 bit or 16 bit.

4) 비동기식 직렬통신 제어기의 사용자 정의 비동기 직렬통신 프로토콜의 프레임의 하드웨어적 처리 기능은 시작코드의 송신시 자동 생성 및 수신시 검출 기능, CRC-16 코드의 송신시 자동 생성 및 수신시 자동 계산 후 비교(검사) 기능, 프레임 메시지의 수신시, 수신기 ID를 사용한 자동 메시지 필터팅 기능으로 수신기 ID 자동 체크 후 수신 여부 판단 기능, 프레임 길이 송신시 자동 Hamming 코드 생성 및 수신시 자동 인코딩/디코딩 기능을 제공한다. 4) The hardware processing function of the frame of the user-defined asynchronous serial communication protocol of the asynchronous serial communication controller is compared with the automatic generation and the detection function when the start code is transmitted and the automatic calculation and the automatic calculation when the CRC-16 code is transmitted. (Check) function, automatic message filtering function using receiver ID when receiving frame message, automatically check receiver ID after receiving receiver function, automatic hamming code generation when sending frame length and automatic encoding / decoding function when receiving. .

사용자가 정의한 비동기식 직렬통신 프로토콜의 프레임은 표1과 같이 나타낸다.User-defined asynchronous serial communication protocol frames are shown in Table 1.

(1)   (One) (2)     (2) (3)    (3) (4)     (4) (5)     (5) (6)    (6) 시작 코드Start code 프레임 길이Frame length 수신기 IDReceiver ID 예비    Spare 데이터   data CRC-16 CRC-16 2 Bytes 2 Bytes 2 Bytes   2 Bytes 1 Byte   1 Byte 1 Byte  1 Byte 0~112 Bytes0 ~ 112 Bytes 2 Bytes 2 Bytes

사용자 정의 비동기식 직렬통신 프로토콜의 프레임은 메시지의 시작을 나타내는 정보로 헥사데시말(16진수) 0x7FFE로 사용하는 시작코드(1); 수신기 ID(3), 예비(4), 데이터(5) 필드(필드(3)~(5))의 전체길이(Byte단위), Hamming 코드(8,4)를 적용하는 프레임 길이(2); 직렬통신의 대상이 되는 상대방 컴퓨터의 수신 장비 ID인 수신기 ID(3); 예비(4); 사용자가 전송하고자 하는 데이터로 Half-Word(2Bytes)단위를 사용하는 데이터(5); 및 필드 (2)~(5)의 값(프레임 길이, 수신기 ID, 예비, 데이터)을 CRC-16 계산한 값인 CRC-16(6)으로 구성된다. The frame of the user-defined asynchronous serial communication protocol is a start code (1) used as hexadecimal (hexadecimal) 0x7FFE as information indicating the start of a message; A frame length (2) to which the receiver ID (3), spare (4), total length (in bytes) of data (5) fields (fields (3) to (5)), and Hamming codes (8, 4) are applied; A receiver ID (3) which is a reception equipment ID of a counterpart computer to be subjected to serial communication; Spare (4); Data 5 using half-words (2 bytes) as data to be transmitted by the user; And CRC-16 (6), which is a CRC-16 calculated value of the values (frame length, receiver ID, preliminary, data) of the fields (2) to (5).

사용자 정의 직렬통신 프로토콜을 지원하는 고속 비동기 직렬통신 제어기는 사용자 정의 직렬통신 프로토콜 프레임을 사용하여 최대 8채널로 각 채널별 독립적으로 최대 10Mbps의 통신속도를 지원하고, 호스트 컴퓨터의 CPU와의 인터페이스를 8비트 또는 16비트로 선택가능하며, 가변길이 사용자 정의 직렬통신 프로토콜을 지원하는 동시에 자동 통신오류 검출과 정정기능, 자동 통신코드 삽입, 메시지 필터링, 노이즈 필터링 기능을 제공한다.High-speed asynchronous serial communication controller that supports user defined serial communication protocol supports communication speed of up to 10 Mbps independently for each channel by up to 8 channels using user defined serial communication protocol frame, and 8 bit interface with CPU of host computer. It is selectable to 16 bits and supports variable length user-defined serial communication protocols while providing automatic communication error detection and correction, automatic communication code insertion, message filtering and noise filtering.

이상에서 설명한 바와 같이, 이상에서 설명한 바와 같이, 이상에서는 본 발명의 바람직한 실시예를 예시적으로 설명하였으나, 본 발명의 범위는 이와 같은 특정 실시예에만 한정되는 것은 아니므로, 본 발명은 본 발명의 사상 및 특허 청구범위에 기재된 범주 내에서 다양한 형태로 수정, 변경, 또는 개선될 수 있으며 본 발명의 보호 범위는 아래의 특허 청구범위를 기준으로 그와 동등한 범위 내에 있는 모든 기술 사상에 대해서까지 포함되는 것으로 해석되어야할 것이다.As described above, as described above, the preferred embodiment of the present invention has been exemplarily described above, but the scope of the present invention is not limited only to such specific embodiments, and therefore, the present invention is directed to the present invention. It may be modified, changed or improved in various forms within the scope of the spirit and claims, and the protection scope of the present invention is included for all technical spirits within the scope equivalent to the claims below. Should be interpreted as.

10: 호스트 인터페이스부 20: 보드 레이트 발생기
21: PLL 22: 프리스케일러
23: 분주기(divider) 30: 바이트 송신 제어기
40: 송신기 FIFO 버퍼(Tx FIFO) 41: 프레임 송신 제어기
42: 송신기 입력 먹스(Tx Input Mux) 50: 노이즈 필터
54: 바이트 수신 제어기 60: 프레임 수신기
61: 프레임 수신 제어기 62: 프레임 버퍼
63: 수신기 출력 먹스(Rx Output Mux) 70: 수신기 FIFO 버퍼(Rx FIFO)
80: Rx Timeout 타이머 90: 레지스터
91: Status 레지스터 92: Control 레지스터
100: 인터럽트 제어기
10: host interface 20: baud rate generator
21: PLL 22: Prescaler
23: divider 30: byte send controller
40: Transmitter FIFO Buffer (Tx FIFO) 41: Frame Transmit Controller
42: Tx Input Mux 50: Noise Filter
54: byte receiving controller 60: frame receiver
61: frame receiving controller 62: frame buffer
63: Rx Output Mux 70: Receiver FIFO Buffers (Rx FIFO)
80: Rx Timeout Timer 90: Register
91: Status register 92: Control register
100: interrupt controller

Claims (10)

사용자 정의 직렬통신 프로토콜을 지원하는 고속 비동기 직렬통신 제어기에 있어서,
상기 고속 비동기 직렬통신 제어기는,
호스트 컴퓨터의 CPU와 데이터 버스를 제어하여 데이터 버스 8비트 또는 16비트의 선택이 가능하고, 어드레스 디코더(address decoder), 읽기/쓰기 스트로브 발생기(read/write strobe generator)로 구성되는 호스트 인터페이스부;
25MHz의 클럭을 입력받아 8채널의 각 채널별로 송수신에 필요한 시스템 클럭을 생성하는 보드 레이트 발생기(Baud rate generator);
프레임 길이, 수신기 ID, 사용자가 전송하고자하는 데이터를 선입선출 방식으로 저장하여 제공하는 송신기 FIFO 버퍼(Tx FIFO);
Frame 모드 시 메시지 프레임의 하드웨어적으로 처리하며, 송신할 데이터에 메시지의 시작(SOM:Start of Message)을 자동 생성하며, 사용자 정의 비동기 직렬통신 프로토콜의 프레임 길이, 수신기ID, 예비, 데이터 필드에 대한 CRC-16 계산을 자동으로 수행하고 그 결과 값을 송신 메시지 필드(CRC-16 필드)에 실어주는 프레임 송신 제어기(Frame Transmit Controller);
각 채널의 동작모드(일반 8bits 통신 모드, frame 모드)에 따라 상기 송신기 FIFO 버퍼(Tx FIFO)로부터 1 byte(8 bits)를 그대로 직렬로 전송하거나 또는 상기 프레임 송신 제어기로부터 상기 사용자 정의 비동기 직렬통신 프로토콜의 프레임을 바이트 송신 제어기로 전송하는 송신기 입력 먹스(Tx Input Mux);
상기 보드 레이트 발생기로부터 각 채널별로 송수신에 필요한 시스템 클럭을 입력받고, 상기 송신기 입력 먹스(Tx Input Mux)로부터 1 바이트(8 bits)를 입력받아 직렬로 변환하여 송신하는 바이트 송신 제어기(Byte Transmit Controller);
8 samples average filter로 구성되고, 트랜시버(Transceiver)와 통신시 수신신호에 섞여 있는 펄스성 노이즈를 제거하는 노이즈 필터;
상기 노이즈 필터(Noise filter)로부터 1 바이트(8 bits)의 직렬 데이터를 수신하여 병렬 데이터로 변환하여 출력하는 바이트 수신 제어기(Byte Receive Controller);
프레임 수신 제어 및 상기 사용자 정의 비동기 직렬통신 프로토콜의 프레임을 저장하는 프레임 수신기;
각 채널의 동작모드(일반 8bits 통신 모드, frame 모드)에 따라 상기 바이트 수신 제어기(Byte Receive Controller)로부터 그대로 1 byte(8 bits)의 병렬 데이터를 전송하거나 또는 상기 프레임 수신기로부터 상기 사용자 정의 비동기 직렬통신 프로토콜의 프레임을 전송하는 수신기 출력 먹스(Rx Output Mux);
상기 수신기 출력 먹스(Rx Output Mux)로부터 1 byte(8 bits)의 병렬 데이터 또는 상기 사용자 정의 비동기 직렬통신 프로토콜의 프레임을 선입선출 방식으로 저장하고, 상기 호스트 인터페이스부로 전송하는 수신기 FIFO 버퍼(Rx FIFO);
수신대기시간의 한계 시간을 설정하고, 16bits 타이머로 구성되는 Rx Timeout 타이머(Receive timeout timer);
상기 송신기 FIFO 버퍼(Tx FIFO) 및 상기 수신기 FIFO 버퍼(Rx FIFO)의 상태 정보를 저장하고, 8채널의 각 채널의 동작모드(일반 8bits 통신 모드, frame 모드)를 제어하는 레지스터; 및
폴링 엣지 트리거(Falling edge trigger)를 사용하여 8채널에서 발생하는 인터럽트를 종합하여 모든 인터럽트를 다중화하여 1개의 인터럽트(IRn: Interrupt Request, n은 Active Low(Low 일때만 동작))로 출력하여 호스트 컴퓨터의 CPU로 인터럽트 처리를 요청하는 인터럽트 제어기;
를 포함하는 사용자 정의 직렬통신 프로토콜을 지원하는 고속 비동기 직렬통신 제어기.
A high speed asynchronous serial communication controller supporting a user defined serial communication protocol,
The high speed asynchronous serial communication controller,
A host interface unit capable of selecting a data bus 8 bits or 16 bits by controlling a CPU and a data bus of the host computer, the host interface including an address decoder and a read / write strobe generator;
A baud rate generator for receiving a clock of 25 MHz and generating a system clock for transmitting and receiving for each channel of eight channels;
A transmitter FIFO buffer (Tx FIFO) for storing and providing a frame length, a receiver ID, and data to be transmitted by the user in a first-in first-out manner;
It handles hardware of message frame in Frame mode, and automatically generates Start of Message (SOM) in the data to be sent, and it is used for frame length, receiver ID, redundancy, data field of user defined asynchronous serial communication protocol. A frame transmit controller which automatically performs CRC-16 calculation and places the result in a transmission message field (CRC-16 field);
Depending on the operation mode (general 8bits communication mode, frame mode) of each channel, serial transmission of 1 byte (8 bits) from the transmitter FIFO buffer (Tx FIFO) as it is, or from the frame transmission controller to the user-defined asynchronous serial communication protocol A transmitter input mux for sending a frame of the data to the byte transmission controller;
A byte transmit controller for receiving a system clock necessary for transmission and reception for each channel from the baud rate generator, receiving 1 byte (8 bits) from the transmitter input mux, and converting it serially. ;
A noise filter comprising an 8 samples average filter and removing pulsed noise mixed in a received signal when communicating with a transceiver;
A byte reception controller for receiving serial data of 1 byte from the noise filter, converting the serial data into parallel data, and outputting the parallel data;
A frame receiver for storing frame reception control and a frame of the user-defined asynchronous serial communication protocol;
According to the operation mode (general 8bits communication mode, frame mode) of each channel, 1 byte (8 bits) of parallel data is directly transmitted from the byte receive controller or the user-defined asynchronous serial communication from the frame receiver. A receiver output mux for sending frames of the protocol;
A receiver FIFO buffer (Rx FIFO) for storing 1 byte (8 bits) of parallel data from the receiver output mux or a frame of the user-defined asynchronous serial communication protocol in a first-in first-out manner and transmitting the same to the host interface unit. ;
An Rx Timeout Timer (Receive timeout timer) configured to set a limit time of the reception wait time and constitute a 16bits timer;
A register for storing state information of the transmitter FIFO buffer (Tx FIFO) and the receiver FIFO buffer (Rx FIFO), and controlling an operation mode (general 8 bits communication mode, frame mode) of each channel of eight channels; And
Using the falling edge trigger, all interrupts from the eight channels are combined and all interrupts are multiplexed and output as one interrupt (IRn: Interrupt Request, where n is Active Low). An interrupt controller for requesting interrupt processing to the CPU;
High speed asynchronous serial communication controller supporting a user-defined serial communication protocol comprising a.
제1항에 있어서,
상기 보드 레이트 발생기는,
25MHz의 클럭을 입력받아 80MHz로 시스템 클럭을 제공하는 위상고정루프(PLL:Phase Looked Loop);
상기 위상고정루프(PLL)로부터 제공된 80MHz 시스템 클럭을 N배하는 프리스케일러(Prescaler); 및
상기 프리스케일러로부터 제공된 클럭을 8채널별로 각 채널별로 1/N배로 분주하여 송수신에 필요한 클럭을 생성하는 분주기(divider);
를 포함하는 사용자 정의 직렬통신 프로토콜을 지원하는 고속 비동기 직렬통신 제어기.
The method of claim 1,
The baud rate generator,
Phase Looked Loop (PLL), which receives a 25 MHz clock and provides a system clock at 80 MHz;
A prescaler N times the 80 MHz system clock provided from the phase locked loop PLL; And
A divider for dividing a clock provided from the prescaler by 1 / N times for each channel to generate a clock necessary for transmission and reception;
High speed asynchronous serial communication controller supporting a user-defined serial communication protocol comprising a.
제1항에 있어서,
상기 프레임 수신기는
상기 Frame 모드(Advanced function 모드)시 동작하며, 메시지의 시작(SOM:Start of Message)을 자동으로 검출하고, 수신기 ID(Receiver ID, 직렬통신의 대상이 되는 상대방 컴퓨터 ID)와 자신의 ID 자동으로 비교하며, 수신 메시지 프레임의 프레임 길이(2), 수신기ID(3), 예비(4), 데이터(5) 필드에 대한 CRC-16 계산을 수행하고, CRC-16 값과 자동으로 비교하는 프레임 수신 제어기(Frame Receive Controller); 및
상기 프레임 길이, 상기 수신기 ID, 상기 사용자가 전송하고자 하는 데이터를 포함하는 사용자 정의 비동기 직렬통신 프로토콜의 프레임을 저장하는 프레임 버퍼;
를 포함하는 사용자 정의 직렬통신 프로토콜을 지원하는 고속 비동기 직렬통신 제어기.
The method of claim 1,
The frame receiver
It operates in the Frame mode (Advanced function mode), automatically detects the start of a message (SOM), automatically receives the receiver ID (Receiver ID, the counterpart computer ID targeted for serial communication) and its own ID. Receive a frame that performs a CRC-16 calculation on the frame length (2), receiver ID (3), spare (4), and data (5) fields of the received message frame, and automatically compares the CRC-16 value Frame Receive Controller; And
A frame buffer for storing a frame of a user-defined asynchronous serial communication protocol including the frame length, the receiver ID, and data to be transmitted by the user;
High speed asynchronous serial communication controller supporting a user-defined serial communication protocol comprising a.
제1항에 있어서,
상기 레지스터는
상기 송신기 FIFO 버퍼(Tx FIFO) 및 상기 수신기 FIFO 버퍼(Rx FIFO)의 오버플로우(overflow) 상태의 꽉찬 정보, 다 비어있는(empty) 상태의 정보를 저장하여 호스트 컴퓨터의 CPU로 알려주는 상태 레지스터(Status Register); 및
8채널의 각 채널의 동작모드(일반 8bits 통신 모드, frame 모드)를 제어하는 제어 레지스터(Control Register);
를 포함하는 사용자 정의 직렬통신 프로토콜을 지원하는 고속 비동기 직렬통신 제어기.
The method of claim 1,
The register is
Status register for storing the overflow information of the overflow state of the transmitter FIFO buffer (Tx FIFO) and the receiver FIFO buffer (Rx FIFO) and the empty state information to the CPU of the host computer ( Status Register); And
A control register for controlling an operation mode (general 8 bits communication mode, frame mode) of each channel of eight channels;
High speed asynchronous serial communication controller supporting a user-defined serial communication protocol comprising a.
제1항에 있어서,
상기 사용자 정의 비동기 직렬통신 프로토콜의 프레임은, 메시지의 시작을 나타내는 정보로 헥사데시말 0x7FFE로 사용하는 시작코드(1); 수신기 ID(3)와 예비(4)와 데이터(5) 필드의 전체길이(Byte단위), Hamming 코드(8,4)를 적용하는 프레임 길이(2); 수신기 ID(3); 예비(4); 사용자가 전송하고자 하는 데이터로 Half-Word(2Bytes)단위를 사용하는 데이터(5); 및 프레임 길이(2), 수신기 ID(3), 예비(4), 데이터(5)의 필드 값을 CRC-16 계산한 값인 CRC-16(6)으로 구성되는 것을 특징으로 하는 사용자 정의 직렬통신 프로토콜을 지원하는 고속 비동기 직렬통신 제어기.
The method of claim 1,
The frame of the user-defined asynchronous serial communication protocol includes a start code (1) used as hexadecimal 0x7FFE as information indicating the start of a message; A frame length 2 to which the total length (in bytes) of the receiver ID 3, the spare 4, and the data 5 field and the Hamming codes 8 and 4 are applied; Receiver ID 3; Spare (4); Data 5 using half-words (2 bytes) as data to be transmitted by the user; And CRC-16 (6), which is a CRC-16 calculated field value of frame length (2), receiver ID (3), spare (4), and data (5). High speed asynchronous serial communication controller.
제1항에 있어서,
상기 비동기 직렬통신 제어기는, 상기 호스트 컴퓨터의 CPU와의 인터페이스의 데이터버스를 8비트 또는 16비트로 선택적으로 연결되고, 사용자 정의 비동기 직렬통신 프로토콜의 프레임의 시작코드(SOM: Start of Message)를 자동 생성하고 프레임 길이에 대한 Hamming 코드를 자동 생성하며 프레임 전체에 대한 CRC-16 코드를 자동생성하여 트랜시버로 전송하는 전송기능과, 상기 트랜시버로부터 입력받은 신호에서 8비트 중 3비트 이하 노이즈를 제거하고 사용자 정의 비동기 직렬통신 프로토콜의 프레임의 시작코드(SOM:Start of Message)를 자동으로 검출하고 프레임 길이에 대한 Hamming 코드를 자동 디코딩하며 프레임 전체에 대한 CRC-16 코드를 자동 검사하는 동시에 프레임 메시지의 수신기 ID 정보를 이용한 자동 메시지 필터링 기능을 제공하는 것을 특징으로 하는 사용자 정의 직렬통신 프로토콜을 지원하는 고속 비동기 직렬통신 제어기.
The method of claim 1,
The asynchronous serial communication controller selectively connects the data bus of the interface with the CPU of the host computer to 8 bits or 16 bits, and automatically generates a start code (SOM) of a frame of a user-defined asynchronous serial communication protocol. Automatic generation of Hamming code for the frame length and automatic generation of CRC-16 code for the entire frame and transmission to the transceiver, removing noise less than 3 bits out of 8 bits from the signal received from the transceiver, and user-defined asynchronous It automatically detects the start of message (SOM) of the serial communication protocol, automatically decodes the Hamming code for the frame length, and automatically checks the CRC-16 code for the entire frame. It characterized by providing an automatic message filtering function using High speed asynchronous serial communication controller with user-defined serial communication protocol.
제1항에 있어서,
상기 비동기 직렬통신 제어기의 상기 사용자 정의 비동기 직렬통신 프로토콜의 프레임의 하드웨어적 처리 기능은, 시작코드의 송신시 자동 생성 및 수신시 검출 기능, CRC-16 코드의 송신시 자동 생성 및 수신시 자동 계산 후 비교(검사) 기능, 프레임 메시지의 수신시, 수신기 ID를 사용한 자동 메시지 필터팅 기능으로 수신기 ID 자동 체크 후 수신 여부 판단 기능, 프레임 길이 송신시 자동 Hamming 코드 생성 및 수신시 자동 인코딩/디코딩 기능을 제공하는 것을 특징으로 하는 사용자 정의 직렬통신 프로토콜을 지원하는 고속 비동기 직렬통신 제어기.
The method of claim 1,
The hardware processing function of the frame of the user-defined asynchronous serial communication protocol of the asynchronous serial communication controller includes an automatic generation upon reception and a detection upon reception of the start code, an automatic calculation upon transmission and a reception upon CRC-16 code. Comparison (check) function, automatic message filtering function using receiver ID when receiving frame message, automatically check receiver ID after receiving receiver ID, automatic hamming code generation when sending frame length and automatic encoding / decoding function when receiving A high speed asynchronous serial communication controller supporting a user-defined serial communication protocol, characterized in that.
제1항에 있어서,
상기 고속 비동기 직렬통신 제어기는, 상기 호스트 컴퓨터의 CPU와의 인터페이스의 데이터 버스를 8비트 또는 16비트로 선택가능하며, 가변길이 사용자 프로토콜을 지원하는 동시에 자동 통신오류 검출과 정정기능, 자동 통신코드 삽입과 메시지 필터링 기능, 노이즈 필터링 기능을 제공하는 것을 특징으로 하는 사용자 정의 직렬통신 프로토콜을 지원하는 고속 비동기 직렬통신 제어기.
The method of claim 1,
The high-speed asynchronous serial communication controller can select an 8-bit or 16-bit data bus interface with the CPU of the host computer, and supports a variable length user protocol while automatically detecting and correcting communication errors, and inserting automatic communication codes and messages. A high speed asynchronous serial communication controller supporting a user-defined serial communication protocol, characterized by providing filtering and noise filtering.
제8항에 있어서,
상기 자동 통신오류 검출 및 정정 기능은, 메시지 프레임의 길이를 나타내는 정보를 통신오류 발생시 제한적으로 오류를 정정하는 Hamming 코드를 적용하고 메시지 프레임의 마지막 코드에 CRC16 오류검출 정보를 두어 전체 통신데이터에 오류가 있는지를 검사하여 하드웨어에서 자동으로 처리하여 CPU 시간자원 점유를 최소화하고,
상기 자동 통신코드 삽입과 메시지 필터링 기능은 메시지 프레임의 첫 번째 코드에 메시지의 시작코드(SOM)를 자동 삽입하고 미리 지정된 장치 ID와 통신 메시지 프레임의 수신기 ID가 일치하지 않는 경우 수신한 메시지를 자동으로 폐기하는 것을 특징으로 하는 사용자 정의 직렬통신 프로토콜을 지원하는 고속 비동기 직렬통신 제어기.
9. The method of claim 8,
The automatic communication error detection and correction function applies a Hamming code that restricts the error of information indicating the length of the message frame when a communication error occurs, and puts CRC16 error detection information in the last code of the message frame so that an error occurs in the entire communication data. Checks and automatically takes care of hardware to minimize CPU time resource occupancy,
The automatic communication code insertion and message filtering function automatically inserts a start code (SOM) of the message into the first code of the message frame, and automatically receives the received message if the predetermined device ID and the receiver ID of the communication message frame do not match. A high speed asynchronous serial communication controller supporting a user-defined serial communication protocol, characterized in that for discarding.
제1항에 있어서,
상기 노이즈 필터는, 8 sample 중 3개 이하의 펄스성 노이즈를 제거하는 것을 특징으로 하는 사용자 정의 직렬통신 프로토콜을 지원하는 고속 비동기 직렬통신 제어기.
The method of claim 1,
The noise filter is a high-speed asynchronous serial communication controller supporting a user-defined serial communication protocol, characterized in that to remove three or less of the pulsed noise of the eight samples.
KR1020110081874A 2011-08-17 2011-08-17 High speed asynchronous serial communication controller to support a user defined serial communication protocol KR101256886B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110081874A KR101256886B1 (en) 2011-08-17 2011-08-17 High speed asynchronous serial communication controller to support a user defined serial communication protocol

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110081874A KR101256886B1 (en) 2011-08-17 2011-08-17 High speed asynchronous serial communication controller to support a user defined serial communication protocol

Publications (2)

Publication Number Publication Date
KR20130019735A KR20130019735A (en) 2013-02-27
KR101256886B1 true KR101256886B1 (en) 2013-04-22

Family

ID=47897793

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110081874A KR101256886B1 (en) 2011-08-17 2011-08-17 High speed asynchronous serial communication controller to support a user defined serial communication protocol

Country Status (1)

Country Link
KR (1) KR101256886B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3033412B1 (en) * 2015-03-06 2019-04-12 Starchip INTEGRATED CIRCUIT TESTER ON A SILICON GALETTE AND INTEGRATED CIRCUIT.
CN111352887B (en) * 2019-11-19 2023-10-17 中国航空工业集团公司西安航空计算技术研究所 PCI bus-to-configurable frame length serial bus adaptation and transmission method
CN114157731B (en) * 2021-10-29 2024-04-12 合肥华控天芯科技有限公司 FC-AE protocol analyzer based on FPH-trie tree and dynamic priority scheduling

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970010156B1 (en) * 1994-05-12 1997-06-21 대우통신 주식회사 Fifo buffer matching apparatus in receiving circuit of signal communication system
JPH1063617A (en) 1996-08-15 1998-03-06 Sony Corp Serial communication device
KR100239437B1 (en) 1997-08-22 2000-01-15 김영환 Serial interface communication
KR100266696B1 (en) 1998-06-03 2000-09-15 김영환 Serial communication interface circuit

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970010156B1 (en) * 1994-05-12 1997-06-21 대우통신 주식회사 Fifo buffer matching apparatus in receiving circuit of signal communication system
JPH1063617A (en) 1996-08-15 1998-03-06 Sony Corp Serial communication device
KR100239437B1 (en) 1997-08-22 2000-01-15 김영환 Serial interface communication
KR100266696B1 (en) 1998-06-03 2000-09-15 김영환 Serial communication interface circuit

Also Published As

Publication number Publication date
KR20130019735A (en) 2013-02-27

Similar Documents

Publication Publication Date Title
JP4554863B2 (en) Network adapter and communication method with reduced hardware
US8930599B2 (en) Data transmission system and method thereof
US7394987B2 (en) Programmable infrared data processor
EP1133129A2 (en) A programmable multi-standard mac architecture
KR960005444B1 (en) Communication control microcomputer
US7948894B2 (en) Data flow control for simultaneous packet reception
US10789110B2 (en) Methods and apparatus for correcting out-of-order data transactions between processors
US20160261375A1 (en) Packet format and coding method for serial data transmission
EP3411956A1 (en) Programmable distributed data processing in a serial link
US7710973B2 (en) Error masking for data transmission using received data
JP2017528830A (en) Variable frame length virtual GPIO with modified UART interface
EP1984834B1 (en) System and method for efficient network flow control
KR101256886B1 (en) High speed asynchronous serial communication controller to support a user defined serial communication protocol
JP2018518765A (en) Independent UART BRK detection
US8588234B2 (en) Data processing apparatus, method, and computer-readable storage medium for dynamically controlling a transmission interval
US20130156050A1 (en) Data transfer apparatus, data transfer method, and inter-chip communication system
US11868209B2 (en) Method and system for sequencing data checks in a packet
CN110099028A (en) A kind of method and device of serial data transmission
Mohor Ethernet IP Core Specification
CN111475447B (en) High-speed serial transmission device based on LVDS and data transmission method
US7334040B2 (en) Method of transmission between two processors of a radio communication unit
JP2011186791A (en) Usb hub and control method for the same
JPH11346201A (en) Information transferring device
Sabat et al. Reliable high speed data acquisition system using FPGA
CN1988430B (en) A method and apparatus for transmitting data in an integrated circuit

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160519

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180409

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190402

Year of fee payment: 7