KR100705422B1 - Pci dmb 수신기 제어용 fpga. - Google Patents

Pci dmb 수신기 제어용 fpga. Download PDF

Info

Publication number
KR100705422B1
KR100705422B1 KR1020050091439A KR20050091439A KR100705422B1 KR 100705422 B1 KR100705422 B1 KR 100705422B1 KR 1020050091439 A KR1020050091439 A KR 1020050091439A KR 20050091439 A KR20050091439 A KR 20050091439A KR 100705422 B1 KR100705422 B1 KR 100705422B1
Authority
KR
South Korea
Prior art keywords
data
service
application software
sfco
fpga
Prior art date
Application number
KR1020050091439A
Other languages
English (en)
Other versions
KR20070036430A (ko
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 KR1020050091439A priority Critical patent/KR100705422B1/ko
Publication of KR20070036430A publication Critical patent/KR20070036430A/ko
Application granted granted Critical
Publication of KR100705422B1 publication Critical patent/KR100705422B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • 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/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • 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
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4498Finite state machines
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25133Serial parallel conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0024Peripheral component interconnect [PCI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H2201/00Aspects of broadcast communication
    • H04H2201/10Aspects of broadcast communication characterised by the type of broadcast system
    • H04H2201/11Aspects of broadcast communication characterised by the type of broadcast system digital multimedia broadcasting [DMB]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Circuits Of Receivers In General (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

본 발명은 PCI(Peripheral Component Interconnect) DMB(Digital Multimedia Broadcasting) 수신기에 관한 것으로, 특히 PCI DMB 수신기용 FPGA(Field Programable Gate Array)의 구조에 관한 것이다.
본 발명에 따른 PCI DMB 수신기 제어용 FPGA는, 응용 소프트웨어로부터 초기화 및 주파수 설정에 대한 명령을 받아 I2C 인터페이스를 통해 채널 선국을 수행하는 튜너 제어부; 상기 응용 소프트웨어로부터 명령을 받아 L3 인터페이스를 통해 베이스 밴드 모뎀의 초기화, 환경 설정 및 서비스 구성을 수행하는 베이스밴드 제어부; 서비스 데이터인 SFCO(Simple Full Capacity Output) 데이터를 종류별로 구분하며, 상기 데이터를 병렬화시키는 SFCO 데이터 처리부; 상기 베이스 밴드 모뎀의 DMB 서비스 데이터를 응용 소프트웨어에 전송하고, 상기 응용 소프트웨어의 명령을 FPGA(Field Programable Gate Array)에서 수신 가능하게 하는 로컬 버스 제어부; 및 상기 서비스 구성까지 필요한 일련의 과정 및 동작을 일괄 처리하여 윈도우즈(Windows) O/S를 기반으로 하는 응용 소프트웨어의 구현을 가능하게 하는 클록 제어부;를 포함하여 구성된다.
PCI, DMB, FPGA, RF 튜너, 베이스밴드 모뎀, SFCO, 로컬 버스, PCI 버스

Description

PCI DMB 수신기 제어용 FPGA.{FPGA For Controlling PCI DMB Receiver}
도 1은 본 발명에 따른 PCI(Peripheral Component Interconnect) DMB(Digital Multimedia Broadcasting) 수신기의 개략적인 구성 블록도를 도시한 것이다.
도 2는 도 1에 도시된 본 발명에 따른 FPGA의 상세 구성 블록도를 도시한 것이다.
도 3은 도 2에 도시된 RF 튜너 제어부의 상세 구성 블록도를 도시한 것이다.
도 4는 도 3에 도시된 RF 튜너 제어부의 동작 상태를 도시한 것이다.
도 5는 도 2에 도시된 베이스 밴드 모뎀 제어부의 상세 블록도를 도시한 것이다.
도 6은 도 5에 도시된 베이스 밴드 모뎀 제어부의 동작 상태를 도시한 것이다.
도 7은 도 2에 도시된 서비스 데이터 처리부의 상세 구성 블록도를 도시한 것이다.
도 8은 SFCO 데이터 3Bytes 유효여부를 나타내는 플래그들이 갖는 구조를 도시한 일례이다.
<도면의 주요 부분에 대한 부호의 설명>
100; 프로그램어블 게이트 어레이 110; RF 튜너
120; 베이스 밴드 모뎀 130; 로컬 버스
140; PCI 제어기 210; 튜너 제어부
220a; 베이스밴드 제어부 220b; 베이스밴드 데이터 처리부
230; SFCO 데이터 처리부 240; SFCO 데이터 저장부
250; 로컬 버스 제어부 260; 리셋 제어부
270; 클록 제어부 310, 740, 770; 레지스터
320, 520; 유한 상태 머신 330; I2C 제어부
510; 메모리 530; L3 제어부
710; SFCO 제어부 720; 직병렬 변환부
730; 쉬프트 레지스터 750; FIFO(First-In First-Out)
760; 메모리 제어부
본 발명은 PCI(Peripheral Component Interconnect) DMB(Digital Multimedia Broadcasting) 수신기에 관한 것으로, 특히 PCI DMB 수신기용 FPGA(Field Programable Gate Array)의 구조에 관한 것이다.
FPGA(Field Programmable Gate Array) 제어기는 PCI(Peripheral Component Interconnect) 형태의 한국형 DMB(Digital Multimedia Broadcasting) 수신기를 구현하는데 있어 수신기의 원활한 동작을 위한 제어를 담당한다.
일반적으로 PCI DMB 수신기용 FPGA는 윈도우즈 O/S를 기반으로 하는 응용 ㅅ소프트웨어의 O/S 스케쥴링이 일으키는 기능 구현의 문제점이 존재한다.
또한, 윈도우즈 O/S를 기반으로 하는 응용 소프트웨어에 안정적으로 데이터를 전달하거나, 대용량 처리에 있어 한계를 가지고 있었다.
상술한 종래의 문제점을 해결하기 위한 본 발명의 목적은, 서비스 구성까지 필요한 일련의 과정 및 동작을 일괄 처리하여 윈도우즈 O/S를 기반으로 하는 응용 소프트웨어의 O/S Scheduling이 일으키는 기능 구현의 문제점을 해결할 수 있는 PCI DMB 수신기용 FPGA를 제공하고자 한다.
본 발명의 다른 목적은, 서비스 종류에 따라 데이터를 꼬리표화(Tag)하여 저장함으로써 응용 소프트웨어에서 멀티서비스를 실시간으로 용이하게 구현할 수 있도록 하는 데 있다.
본 발명의 또 다른 목적은, 데이터 경로 기능을 하는 로컬-버스에 메모리 제어에 필요한 상태정보(Status Flags)를 삽입하여 윈도우즈 O/S를 기반으로 하는 드라이버 및 응용 소프트웨어에 안정적으로 데이터를 전달하는 DMA(Direct Memory Access) 기능을 가능하게 하는 PCI DMB 수신기용 FPGA를 제공하고자 한다.
본 발명의 또 다른 목적은, 모든 제어부 및 처리부 기능을 메모리 구조로 구성하여 레지스터 구조에 비해 데이터의 대용량 처리를 용이하게 하는 PCI DMB 수신기용 FPGA를 제공하고자 한다.
상술한 본 발명의 목적을 달성하기 위한 본 발명에 따른 PCI(Peripheral Component Interconnect) DMB(Digital Multimedia Broadcasting) 수신기 제어용 FPGA는, 응용 소프트웨어로부터 초기화 및 주파수 설정에 대한 명령을 받아 I2C 인터페이스를 통해 채널 선국을 수행하는 튜너 제어부; 상기 응용 소프트웨어로부터 명령을 받아 L3 인터페이스를 통해 베이스 밴드 모뎀의 초기화, 환경 설정 및 서비스 구성을 수행하는 베이스밴드 제어부; 서비스 데이터인 SFCO(Simple Full Capacity Output) 데이터를 종류별로 구분하며, 상기 데이터를 병렬화시키는 SFCO 데이터 처리부; 상기 베이스 밴드 모뎀의 DMB 서비스 데이터를 응용 소프트웨어에 전송하고, 상기 응용 소프트웨어의 명령을 FPGA(Field Programable Gate Array)에서 수신 가능하게 하는 로컬 버스 제어부; 및 상기 서비스 구성까지 필요한 일련의 과정 및 동작을 일괄 처리하여 윈도우즈(Windows) O/S를 기반으로 하는 응용 소프트웨어의 구현을 가능하게 하는 클록 제어부;를 포함하여 구성된다.
여기서, 상기 PCI DMB 수신기 제어용 FPGA는 상기 베이스 밴드 모뎀에서 나오는 서비스 구성 정보(FIB; Forwarding Information Base)와 실제 서비스 정보 (MSC; Main Service Channel)를 저장하고 제어하는 SFCO 데이터 저장부;를 더 포함하여 구성된다.
여기서, 상기 PCI DMB 수신기 제어용 FPGA는 DMB 수신기 전체에 대한 초기화 기능과 모듈별 초기화 역할을 수행하는 리셋 제어부를 더 포함하여 구성되는 것이 바람직하다.
여기서, 상기 RF 튜너 제어부는, 튜너 설정 데이터(TCD)를 일시 저장하기 위한 레지스터; 튜너 제어 명령(TCC)에 따라 동작 상태를 결정하고 각종 제어신호를 발생하는 유한 상태 머신(Finite State Machine: FSM); 및 상기 레지스터 및 유한 상태 머신의 출력 신호를 I2C 전송 규격에 따라 인터페이싱하는 I2C 제어부로 구성된다.
여기서, 상기 베이스 밴드 모뎀 제어부는, 상기 베이스 밴드 모뎀의 초기화 데이터 및 환경 설정값 및 서비스 구성 명령어를 저장하는 메모리; 상기 베이스 밴드 모뎀의 제어신호에 따라 동작 상태를 결정하고, 각종 제어신호를 발생하는 유한 상태 머신; 상기 메모리 및 유한 상태 머신의 출력 신호에 대하여 L3 인터페이싱 동작을 수행하는 L3 제어부로 구성된다.
여기서, 상기 SFCO 데이터 처리부는, 상기 SFCO 전송 규격에 따라 인터페이싱 동작을 수행하는 SFCO 제어부; 직렬 데이터를 8Bit 병렬 데이터로 변환하는 직병렬 변환부; 상기 직병렬 변환부의 8Bits 출력 데이터를 순차적으로 쉬프팅하고, 서비스 정보(MSC) 및 서비스 구성 정보(FIB)을 구별하기 위한 1Bit FIC(Fast Information Channel)/MSC(Main Service Channel) 플래그를 주기적으로 추가하여 72Bits(9Bits x 8) 쉬프팅하는 쉬프트 레지스터; 3Bytes의 서비스 데이터(FIC 혹은 MSC)와 1Bit의 FIC/MSC 플래그 그리고 3Bytes의 서비스 데이터의 유효 여부를 판단하기 위한 2Bits 유효 플래그를 포함하는 총 27Bits 단위를 일시 저장하는 템포러리 레지스터; 상기 서비스 데이터를 선입선출하는 FIFO(First-In First-Out); 및 상기 FIFO 메모리의 제어를 담당하는 메모리 제어부;로 구성된다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명한다.
도 1은 본 발명에 따른 PCI(Peripheral Component Interconnect) DMB(Digital Multimedia Broadcasting) 수신기의 개략적인 구성 블록도를 도시한 것이다.
도 1에 도시된 바와 같이, PCI DMB 수신기는 노트북 또는 데스크탑 컴퓨터 등의 내부 PCI 버스에 컨넥터(미도시)를 통해 삽입되어, 수신한 DMB 서비스 데이터를 응용 소프트웨어에 전달하여 디지탈 멀티미디어 방송을 볼 수 있도록 하는 착탈식 카드형 DMB 수신 장치이다.
그 구성을 살펴보면, PCI DMB 수신기는 전반적인 수신기의 동작 제어를 위한 필드 프로그램어블 게이트 어레이(Field Programable Gate Array: 이하, FPGA로 약술함)(100), DMB 방송 신호를 선국하는 RF 튜너(110), DMB 방송신호를 복조하는 베이스밴드 모뎀(120), 내부 데이터 통신을 위한 로컬 버스(130), PCI 인터페이스를 위한 PCI 제어기(140)로 구성된다.
이때, PCI DMB 수신기는 컴퓨터 등의 PCI 버스(150)에 컨넥터를 통해 삽입된 다.
도 2는 도 1에 도시된 본 발명에 따른 FPGA의 상세 구성 블록도를 도시한 것이다.
도시된 바와 같이, FPGA(100)는 RF 튜너 제어부(210), 베이스밴드 제어부(220a), 베이스밴드 데이터 처리부(220b), SFCO 데이터 처리부(230), SFCO 데이터 저장부(240), 로컬 버스 제어부(250), 리셋 제어부(260) 및 클록 제어부(270)를 포함하여 구성된다.
튜너 제어부(210)는 RF 튜너(110)의 채널 선국 동작을 제어하기 위한 부분이다. 즉, 응용 소프트웨어(Application Software)에서 RF 튜너(110)의 초기화 및 주파수 설정에 대한 명령을 받아 I2C 인터페이스를 통해 RF 튜너(110)의 채널 선국을 수행한다.
베이스밴드 제어부(220a)는 응용 소프트웨어로부터 모뎀(120)의 초기화 및 환경 설정 그리고 서비스 구성을 위한 명령을 받아 L3 인터페이스를 통해 모뎀(120)의 초기화 및 환경 설정 그리고 서비스 구성을 수행하는 역할을 한다.
베이스밴드 데이터 처리부(220b)는 서비스 구성을 위한 실제 명령어, Configuration 값, 초기화 값을 저장하는 메모리와 그 메모리를 제어하는 부분으로 구성된다.
SFCO 데이터 처리부(230)는 실제 DMB 서비스 데이터인 SFCO 데이터를 서비스 종류별로 구분하며, 유효하지 않은 더미(Dummy) 데이터를 구분한다. 또한, 시리얼(Serial) 형태로 구성되는 데이터를 병렬화(Parallelization)시키는 기능을 수행한 다.
SFCO 데이터 저장부(240)는 모뎀(120)에서 나오는 서비스 구성 정보(FIB; Forwarding Information Base)와 실제 서비스 정보(MSC; Main Service Channel)를 저장하는 메모리와 그 메모리를 제어하는 부분으로 구성된다.
로컬 버스 제어부(250)는 PCI 제어기(140)와 로컬 버스(130)의 데이터 경로를 제어함으로써, 실제 모뎀(120)의 DMB 서비스 데이터를 응용 소프트웨어에 전송하고, 반대로 응용 소프트웨어의 명령을 FPGA에서 원활히 수신 가능하게 하는 역할을 수행한다.
로컬 버스 제어부(250)는 응용 소프트웨어와의 통신을 위한 창구 역할을 하는 메인 버스인 PCI 버스(140)와의 연결을 통해 구성된다. 응용 소프트웨어가 PCI 드라이버를 통해서 명령 및 데이터를 전달하면 PCI 버스(150)를 통해서 전송된 명령어 및 데이터는 PCI 인터페이스 동작을 포함하는 로컬 버스(130)에 의해서 명령어 및 데이터를 받게 된다. 반대로 시스템(FPGA)에서 보낸 DAB 데이터 Byte 및 관련 플래그들과 Read 명령에 의해 받은 응답 Bytes은 로컬 버스 제어부(250)에 전달되어 PCI 인터페이스 동작에 의해 응용 소프트웨어에 전송된다.
리셋 제어부(260)는 DMB 수신기 전체에 대한 초기화 기능과 모듈별 초기화 역할을 수행한다.
클록 제어부(270)는 서비스 구성까지 필요한 일련의 과정 및 동작을 일괄 처리하여 윈도우즈(Windows) O/S를 기반으로 하는 응용 소프트웨어의 특수성으로 인한 문제점을 구현 가능케 하는 역할을 담당한다.
클록 제어부(270)는 서비스 구성까지 필요한 일련의 과정 및 동작을 일괄 처리하여 윈도우즈 O/S를 기반으로 하는 응용 소프트웨어의 특수성을 구현 가능케 한다. 일괄처리(Auto-Script)과정에서 클록 제어부(270)가 하는 역할은 크게 두 가지 이다.
첫째는 RF 튜너(110) 컨피그레이션 이후에 연속적으로 시간 간격(Time Term)을 두고 베이스 밴드 모뎀(120) 초기화 동작을 수행하며, 또 다른 시간 간격을 두고 동기화 체크 동작을 수행한다. 이때 사용된 시간 간격은 모두 클록 제어부에서 받은 신호를 받아 사용하게 된다.
일괄처리(Auto-Script)와 베이스 밴드 모뎀의 인터페이스 인에이블(enable) 구간을 표시하는 신호와의 상관관계를 설명하면 다음과 같다. 인에이블 구간을 표시하는 신호가 로우 구간일 때만 베이스 밴드 모뎀과의 엑세스(Access)가 가능하도록 된다. 인에이블 구간을 표시하는 신호가 하이일 때는 베이스 밴드 모뎀이 신호가 로우 일 때 받았던 명령을 수행하게 된다.
명령을 개별적으로 수행하고 이에 대한 응답을 개별적으로 응용 소프트웨어에 전송하게 되면 윈도우즈 O/S의 자체 Scheduling 때문에 지연 요소(Delay Factor)가 발생하여 원하는 결과를 얻기가 힘들다. 따라서, 본 발명에서는 일괄처리를 통해 모든 엑세스를 수행하고 이에 대한 결과는 Success/Fail 로만 응답하게 된다.
도 3은 도 2에 도시된 튜너 제어부의 상세 구성 블록도를 도시한 것이다.
튜너 제어부(210)는 튜너 설정 데이터(TCD)를 일시 저장하기 위한 레지스터 (310), 튜너 제어 명령(TCC)에 따라 동작 상태를 결정하고 각종 제어신호를 발생하는 유한 상태 머신(Finite State Machine: 이하, FSM이라 약술함)(320), 레지스터(310) 및 FSM(320)의 출력 신호를 I2C 전송 규격에 따라 인터페이싱하는 I2C 제어부(330)로 구성된다.
도 4에 도시된 RF 튜너 제어부(210)의 상태도를 참조하여 동작을 살펴보면, 먼저, 응용 어플리케이션 상에서 채널(주파수)이 선택되면(S410), 해당 채널에 대한 튜너 설정 데이터(TCD)가 계산되고(S420), 이 튜너 설정 데이터(TCD)는 PCI 버스를 거쳐 FPGA로 전달되고(S430), 로컬 버스를 거쳐 다시 I2C 레지스터로 전달되며(S440), I2C 제어부에 의해 I2C 인터페이스를 경유하여 튜너로 순차적으로 전송된다(S450). 이때, RF 튜너(110)는 수신된 튜너 설정 데이터에 따라 채널 선국 동작을 수행하게 된다(S460).
여기서, RF 튜너(110) 내부 레지스(310)터에 전달된 값은 실제 RF 튜너(110)를 제어하는 인터페이스인 I2C 제어부(330)에 전달되어 I2C FSM(320)의 흐름에 맞게 컨피그레이션 동작을 수행하게 된다.
RF 튜너 제어부(210)는 FPGA(100) 내부의 다른 제어부들과는 달리 응답으로 받은 값이 없으며(Write Only Access), 컨피그레이션 Success에 대한 판단은 Byte(Byte) 단위로 전송한 다음에 확인하는 라인 상태(Line Status; High or Low)에 따르게 된다. 주파수 변경이나 튜너 리셋 이후 동작도 같은 과정을 반복하게 된다.
도 5는 도 2에 도시된 베이스 밴드 모뎀 제어부의 상세 블록도를 도시한 것 이다.
베이스 밴드 모뎀 제어부(220)는 베이스밴드 제어부(220a) 및 베이스밴드 데이터 처리부(220b)로 구성된다. 더욱 구체적으로, 모뎀 초기화 데이터 및 환경 설정값 및 서비스 구성 명령어를 저장하는 메모리(510), 모뎀 제어신호(MC)에 따라 동작 상태를 결정하고, 각종 제어신호를 발생하는 FSM(520), 메모리(510) 및 FSM(520)의 출력 신호에 대하여 L3 인터페이싱 동작을 수행하는 L3 제어부(530)로 구성된다.
도 6에 도시된 베이스 밴드 모뎀 제어부(220)의 동작 상태도를 참조하여 동작을 살펴보면, 먼저 응용 애플리케이션상에서 모뎀 초기화 명령이 수행되면(S610), 모뎀 초기화값을 계산하고(S620), 이 초기화 값은 PCI 버스 -> FPGA -> 로컬 버스 -> 메모리 -> L3 제어부를 통해 모뎀으로 전송 된다(S630 내지 S650). 그러면, 모뎀은 초기화값에 따라 초기화를 수행하고(S660), 또한 서비스 구성 명령(S670)에 따라 모뎀은 서비스 구성을 수행한다(S680). 이어서, 주기적으로 재환경 구성 여부를 확인(S690)한 후, 상술한 과정을 반복하게 된다.
더욱 상세하게 설명하면 다음과 같다.
RF 튜너 제어부(210)에서 주파수 선택 및 RF 튜너 컨피그레이션이 완료된 후, 실제 베이스 밴드 모뎀(120)의 제어를 위한 베이스 밴드 모뎀(120)의 초기화 과정을 거친다(S610). 응용 소프트웨어로부터 계산된(S620) 값을 PCI 버스와 FPGA 로컬-버스를 통해서 베이스 밴드 데이터 처리부(220b)의 내부 메모리에 저장된다(S630, S640). 여기서, 응용 소프트웨어로부터 계산된 값은 상수(Constant) 값으로 저장된 형태를 갖는 것이 바람직하다.
베이스 밴드 데이터 처리부(220b)의 내부 메모리에 저장된 베이스 밴드 모뎀(120)의 초기값은 실제 베이스 밴드 모뎀(120)을 제어하는 L3 제어부(530)에 전달되어 L3 FSM(520)의 흐름에 맞게 초기화 동작을 수행하게 된다(S650).
베이스 밴드 모뎀 제어부(220)는 FPGA(100) 내부의 RF 튜너 제어부(210)와 달리 레지스터 Write/Read가 가능하며, 초기화 Success에 대한 판단은 동기 상태(Synchronization Status) 체크 단계의 4Byte 응답 값으로 추측할 수 있다(S660). 즉, 예상한 4Byte 값을 실제 수신한 4Byte와 비교하여 다를 경우는 ㅊ초기화 오류 플래그(itialization Fail Flag)를 응용 소프트웨어에 전송하여 이전과정을 재수행하게 한다. 반대로 4Byte가 서로 같게 되면 다음 단계인 FIBs 파싱(Parsing) 통한 서비스 구성 과정으로 넘어간다.
S670 과정은 베이스 밴드 모뎀(120) 요구 사항인 일괄처리(Auto-Script)에 맞게 FPGA(100) 내부에서 응용 소프트웨어에서 처리해야 할 사항을 로우 레벨(Logic Gate Level)로 내려 구현함으로서 윈도우즈 O/S가 가지고 있는 특징인 리퀘스트에 대한 응답을 얻기까지 O/S가 가지고 있는 스케쥴링(Scheduling)의 취약점을 개선하는 것이 가능하다.
베이스 밴드 모뎀(120)의 초기화 및 동기화 과정이 완료되면, 다음은 FIBs Read에 필요한 명령어를 베이스 밴드 제어부(220a에 전송하여 명령을 수행한다(S670). 실제 수신된 FIBs 데이터에서 서비스 관련 정보를 파싱하여 현재 선택한 주파수에서 제공하고 있는 DMB 서비스를 구성하게 된다.
여기서, 어세스 타임은 96msec 동안 FIB0 ~ FIB11까지 384Byte를 모두 읽어 서비스를 구성하도록 하는 것이 바람직하다. 또한, 서비스 구성을 위한 FIBs Read 횟수는 응용 소프트웨어 형태에 따라 알맞게 규정하여 수행하는 것이 바람직하다.
FIB 파싱을 위한 베이스 밴드 모뎀(120)의 명령 Write 동작 및 서비스 중에도 주기적으로 수행하는 리-컨피그레이션(Reconfiguration) 동작도 같은 과정을 반복하게 된다.
이러한 과정이 가능한 것은 RF 튜너(210)의 레지스터 구조의 저장방법과 달리 메모리 구조의 저장방법으로 구현되기 때문이다. 즉, RF 튜너(210)의 제어는 Write Only 방식이고 쓰고자 하는 Byte가 수 또한 십여 Bytes인데, 이와는 달리 베이스 밴드 초기화 및 FIBs 파싱을 위한 명령 Write와 이에 대한 응답 Byte는 적게는 4Bytes에서 많게는 수백 Bytes까지 커지기 때문에 메모리 구조의 저장방식으로 구현하는 것이 바람직하다.
도 7은 도 2에 도시된 서비스 데이터 처리부의 상세 구성 블록도를 도시한 것이다.
도 7에 도시된 SFCO 서비스 데이터 처리부(230)는 SFCO 제어부(710), 직병렬 변환부(720), 쉬프트 레지스터(730), 템포러리 레지스터(740), FIFO(First-In First-Out)(750), 메모리 제어부(760) 및 레지스터(770)로 구성된다.
SFCO 제어부(710)는 SFCO 전송 규격에 따라 인터페이싱 동작을 수행한다. 직병렬 변환부(720)는 직렬 데이터를 8Bit 병렬 데이터로 변환하는 역할을 담당한다.
쉬프트 레지스터(730)는 입력되는 직병렬 변환부(720)의 8Bits 출력 데이터 를 순차적으로 쉬프팅하고, 서비스 정보(MSC) 및 서비스 구성 정보(FIB)을 구별하기 위한 1Bit FIC(Fast Information Channel)/MSC(Main Service Channel) 플래그를 주기적으로 추가하여 72Bits(9Bits x 8) 쉬프팅한다.
템포러리 레지스터(740)는 3Bytes의 서비스 데이터(FIC 혹은 MSC)와 1Bit의 FIC/MSC 플래그 그리고 3Bytes의 서비스 데이터의 유효 여부를 판단하기 위한 2Bits 유효 플래그를 포함하는 총 27Bits 단위를 일시 저장한다. 여기서, 템포러리 레지스터(740)는 레지스터 버퍼링 형태를 취하여 임시로 저장함으로서 메모리 부하를 줄이는 구조를 갖는다.
FIFO(First-In First-Out)(750)는 데이터를 선입선출한다. 메모리 제어부(760)는 메모리(FIFO, 750) 제어를 하며, 레지스터(770)는 서비스 명령어를 일시 저장한다.
RF 튜너(110)의 컨피그레이션, 베이스 밴드 모뎀(120)의 초기화 및 FIB 파싱을 통한 서비스 구성이 순차적으로 완료된 이후, 진행되는 과정은 구성이 완료된 서비스 중에서 받고자 하는 DMB 서비스를 선택하여 이용하게 된다.
SFCO 데이터 처리부(230)와 SFCO 데이터 저장부(240)의 핵심 기능은 서비스 내용이 들어있는 SFCO 데이터가 저장되는 메모리를 원활히 관리하고 제어하는 것이 다. 실제로 SFCO 데이터의 처리 내용은 MSC(Main Service Channel)를 Direct-x에 전달하는 것이 주요 부분을 차지한다.
FPGA 내부 메모리(Unit: 512Bytes)를 이용한 SFCO 데이터 저장용 메모리는 3개의 FPGA 내부 블록 램(RAM)을 조합하여 한 개의 메모리 모듈을 만들어 Read/Write 하는 구조를 갖는다.
여기서, SFCO 데이터 저장용 메모리는 FIC/MSC을 구별하는 플래그와 SFCO 데이터 3Byte의 유효 여부를 나타내는 플래그를 같이 저장하여 응용 소프트웨어가전송된 데이터에 대한 처리 여부를 결정하는데 정보를 주게 된다.
응용 소프트웨어에 전송되는 데이터에는 상기 플래그 이외에 추가적으로 붙어서 전송되는 플래그들이 많지만, SFCO 데이터 처리부(230)와 SFCO 데이터 저장부(240)에서 언급되는 플래그들은 FIC/MSC 구별 플래그와 데이터 3Bytes 유효 플래그가 전부이다.
도 8은 SFCO 데이터 3Bytes 유효여부를 나타내는 플래그들이 갖는 구조를 도시한 일례이다.
도시된 바와 같이, DAB 0 Byte가 유효하면 유효화 Bits (2Bits)가 "01"이 되며, DAB 0 Byte와 DAB 1 Byte가 유효하면 "10"이 되고, 모든 DAB Bytes가 유효하면(DAB 0 Byte, DAB 1 Byte, DAB 2 Byte 모두 유효) 유효화 Bits가 "11"이 되어서 실제 DAB Bytes와 DAB Bytes 유효화 Bits가 모두 메모리에 저장되게 된다.
유효화 Bits 처리 과정에서 중요한 점은 유효화 Bits가 "11"일 경우만 메모리에 데이터가 저장되며, 그 이외의 경우에는 일정시간(100msec)이 지나면 SFCO ㄷ데이터가 들어오지 않는다고 판단하여 현재까지 임시 버퍼에 저장된 데이터와 함께 플래그들을 메모리에 저장하게 된다. 또한 병렬화 과정에서 사용된 레지스터 버퍼를 시프팅(Shifting)시켜 메모리에 저장하게 된다.
본 발명의 기술 사상은 상기 바람직한 실시예에 따라 구체적으로 기술되었으 나, 상기한 실시예는 그 설명을 위한 것이며, 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술 분야의 통상의 전문가라면 본 발명의 기술 사상의 범위 내에서 다양한 실시예가 가능함을 이해할 수 있을 것이다.
상술한 본 발명의 구성에 따르면, 윈도우즈 O/S를 기반으로 하는 응용 소프트웨어의 O/S 스케쥴링이 일으키는 기능 구현의 문제를 해결할 수 있는 PCI DMB 수신기용 FPGA를 제공하는 것이 가능하게 된다.
또한, 서비스 종류에 따라 데이터를 꼬리표화(Tag)하여 저장함으로써 응용 소프트웨어에서 멀티서비스를 실시간으로 용이하게 구현할 수 있다.
또한, 윈도우즈 O/S를 기반으로 하는 응용 소프트웨어에 안정적으로 데이터를 전달하는 것이 가능하게 된다.
또한, 모든 제어부 및 처리부 기능을 메모리 구조로 구성하여 레지스터 구조에 비해 데이터의 대용량 처리를 가능하게 한다.

Claims (6)

  1. 응용 소프트웨어로부터 초기화 및 주파수 설정에 대한 명령을 받아 I2C 인터페이스를 통해 채널 선국을 수행하는 튜너 제어부;
    상기 응용 소프트웨어로부터 명령을 받아 L3 인터페이스를 통해 베이스 밴드 모뎀의 초기화, 환경 설정 및 서비스 구성을 수행하는 베이스밴드 제어부;
    서비스 데이터인 SFCO(Simple Full Capacity Output) 데이터를 종류별로 구분하며, 상기 데이터를 병렬화시키는 SFCO 데이터 처리부;
    상기 베이스 밴드 모뎀의 DMB 서비스 데이터를 응용 소프트웨어에 전송하고, 상기 응용 소프트웨어의 명령을 FPGA(Field Programable Gate Array)에서 수신 가능하게 하는 로컬 버스 제어부; 및
    상기 서비스 구성까지 필요한 일련의 과정 및 동작을 일괄 처리하여 윈도우즈(Windows) O/S를 기반으로 하는 응용 소프트웨어의 구현을 가능하게 하는 클록 제어부;를 포함하는,
    PCI(Peripheral Component Interconnect) DMB(Digital Multimedia Broadcasting) 수신기 제어용 FPGA.
  2. 제1항에 있어서,
    상기 베이스 밴드 모뎀에서 나오는 서비스 구성 정보(FIB; Forwarding Information Base)와 실제 서비스 정보(MSC; Main Service Channel)를 저장하고 제 어하는 SFCO 데이터 저장부;를 더 포함하는, PCI DMB 수신기 제어용 FPGA.
  3. 제2항에 있어서,
    DMB 수신기 전체에 대한 초기화 기능과 모듈별 초기화 역할을 수행하는 리셋 제어부를 더 포함하는, PCI DMB 수신기 제어용 FPGA.
  4. 제1항에 있어서,
    상기 RF 튜너 제어부는,
    튜너 설정 데이터(TCD)를 일시 저장하기 위한 레지스터;
    튜너 제어 명령(TCC)에 따라 동작 상태를 결정하고 각종 제어신호를 발생하는 유한 상태 머신(Finite State Machine: FSM); 및
    상기 레지스터 및 유한 상태 머신의 출력 신호를 I2C 전송 규격에 따라 인터페이싱하는 I2C 제어부로 구성되는, PCI DMB 수신기 제어용 FPGA.
  5. 제1항에 있어서,
    상기 베이스 밴드 모뎀 제어부는,
    상기 베이스 밴드 모뎀의 초기화 데이터 및 환경 설정값 및 서비스 구성 명령어를 저장하는 메모리;
    상기 베이스 밴드 모뎀의 제어신호에 따라 동작 상태를 결정하고, 각종 제어신호를 발생하는 유한 상태 머신;
    상기 메모리 및 유한 상태 머신의 출력 신호에 대하여 L3 인터페이싱 동작을 수행하는 L3 제어부로 구성되는, PCI DMB 수신기 제어용 FPGA.
  6. 제1항에 있어서,
    상기 SFCO 데이터 처리부는,
    상기 SFCO 전송 규격에 따라 인터페이싱 동작을 수행하는 SFCO 제어부;
    직렬 데이터를 8Bit 병렬 데이터로 변환하는 직병렬 변환부;
    상기 직병렬 변환부의 8Bits 출력 데이터를 순차적으로 쉬프팅하고, 서비스 정보(MSC) 및 서비스 구성 정보(FIB)을 구별하기 위한 1Bit FIC(Fast Information Channel)/MSC(Main Service Channel) 플래그를 주기적으로 추가하여 72Bits(9Bits x 8) 쉬프팅하는 쉬프트 레지스터;
    3Bytes의 서비스 데이터(FIC 혹은 MSC)와 1Bit의 FIC/MSC 플래그 그리고 3Bytes의 서비스 데이터의 유효 여부를 판단하기 위한 2Bits 유효 플래그를 포함하는 총 27Bits 단위를 일시 저장하는 템포러리 레지스터;
    상기 서비스 데이터를 선입선출하는 FIFO(First-In First-Out); 및
    상기 FIFO 메모리의 제어를 담당하는 메모리 제어부;로 구성되는, PCI DMB 수신기 제어용 FPGA.
KR1020050091439A 2005-09-29 2005-09-29 Pci dmb 수신기 제어용 fpga. KR100705422B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050091439A KR100705422B1 (ko) 2005-09-29 2005-09-29 Pci dmb 수신기 제어용 fpga.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050091439A KR100705422B1 (ko) 2005-09-29 2005-09-29 Pci dmb 수신기 제어용 fpga.

Publications (2)

Publication Number Publication Date
KR20070036430A KR20070036430A (ko) 2007-04-03
KR100705422B1 true KR100705422B1 (ko) 2007-04-09

Family

ID=38158607

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050091439A KR100705422B1 (ko) 2005-09-29 2005-09-29 Pci dmb 수신기 제어용 fpga.

Country Status (1)

Country Link
KR (1) KR100705422B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030056106A (ko) * 2001-12-27 2003-07-04 한국전자통신연구원 위성통신 송신데이터 처리기 및 그 제어 방법
KR20050065122A (ko) * 2003-12-24 2005-06-29 한국전자통신연구원 프레임 다중화 역다중화 수단을 이용한 10기가비트 이더넷라인 인터페이스 보드
JP2005258502A (ja) 2004-03-09 2005-09-22 Hitachi Kokusai Electric Inc 情報処理ボード

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030056106A (ko) * 2001-12-27 2003-07-04 한국전자통신연구원 위성통신 송신데이터 처리기 및 그 제어 방법
KR20050065122A (ko) * 2003-12-24 2005-06-29 한국전자통신연구원 프레임 다중화 역다중화 수단을 이용한 10기가비트 이더넷라인 인터페이스 보드
JP2005258502A (ja) 2004-03-09 2005-09-22 Hitachi Kokusai Electric Inc 情報処理ボード

Also Published As

Publication number Publication date
KR20070036430A (ko) 2007-04-03

Similar Documents

Publication Publication Date Title
US7096310B2 (en) Switch configurable for a plurality of communication protocols
US9654810B2 (en) Mechanism for partial encryption of data streams
EP0522764B1 (en) Multiplexing scheme for modem control signals
KR100387980B1 (ko) 서로다른두직렬데이터전송모드로동작가능한직렬인터페이스
US20090182917A1 (en) System having capability for daisy-chained serial distribution of video display data
US7647476B2 (en) Common analog interface for multiple processor cores
CN101506783B (zh) 用于阻隔操作的条件式广播的方法和设备
US20100111117A1 (en) Transferring data between asynchronous clock domains
CN107656886B (zh) 一种跨时钟域信号处理电路及其处理方法
US8959274B2 (en) Providing a serial download path to devices
JP2014504063A (ja) パケット交換ネットワーク上の制御バス信号の転送
US7836240B2 (en) Interface arrangement for a system on a chip suitable for outputting higher-frequency signals for operating peripheral devices, and use thereof
US20020178274A1 (en) System for digital stream transmission and method thereof
KR20010080097A (ko) 프로그램 위치에 프로세싱 요소를 디스패칭하기 위한 방법및 장치
KR100705422B1 (ko) Pci dmb 수신기 제어용 fpga.
KR20070067692A (ko) 데이터 전송 승인 방법, 제조 물품 및 시스템
US7729302B2 (en) Adaptive control of multiplexed input buffer channels
JP3253547B2 (ja) データ転送システム
US20060020721A1 (en) Configurable ping-pong buffers for USB buffer descriptor tables
US8769142B2 (en) Data transfer apparatus, information processing apparatus and method of setting data transfer rate
US6665752B1 (en) Interrupt driven interface coupling a programmable media access controller and a process controller
CN101576867B (zh) 一种扩展通用异步串行接口方法、装置和系统
JP3536777B2 (ja) 非同期系間データ転送回路及び非同期系間データ転送方法
US20070083782A1 (en) Power configuration scheme of computer
CN111064908B (zh) 信号传输方法、装置、设备及可读存储介质

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee