KR100474722B1 - 디지털 통신시스템에서 데이터 프레임을 동기화하는 방법 - Google Patents
디지털 통신시스템에서 데이터 프레임을 동기화하는 방법 Download PDFInfo
- Publication number
- KR100474722B1 KR100474722B1 KR10-2003-0009070A KR20030009070A KR100474722B1 KR 100474722 B1 KR100474722 B1 KR 100474722B1 KR 20030009070 A KR20030009070 A KR 20030009070A KR 100474722 B1 KR100474722 B1 KR 100474722B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- data string
- string
- sequence
- bits
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/15—Conference systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/04—Speed or phase control by synchronisation signals
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Communication Control (AREA)
Abstract
본 발명은 통신시스템에서의 데이터 프레임의 동기화에 관한 것으로, 특히 플래그를 이용하여 데이터 프레임을 동기화하는 시스템에 있어서 플래그 에뮬레이션 오류를 방지하기 위한 장치 및 방법에 관한 것이다.
상기한 목적들을 달성하기 위하여 본 발명은 전송하고자 하는 데이터열을 포함하는 데이터 프레임의 시작과 종료를 소정의 시퀀스를 가지는 플래그들을 사용하여 표시하는 통신시스템에서, 상기 데이터열을 소정의 비트수 단위의 복수개의 단위 데이터 열들로 구분하고 순차적으로 상기 단위 데이터열들을 소정의 테이블에 인덱스들로서 입력하고, 상기 인덱스들에 대응하여 더미비트가 선택적으로 삽입된 출력 데이터열들을 상기 테이블로부터 출력하고, 상기 출력 데이터열들로부터 데이터 프레임을 구성하고, 상기 데이터 프레임의 앞단과 후단에 상기 플래그들을 각각 부가하는 데이터 프레임의 동기화 방법을 제공한다.
Description
본 발명은 통신시스템에서의 데이터 프레임의 동기화에 관한 것으로, 특히 플래그를 이용하여 데이터 프레임을 동기화하는 시스템에 있어서 플래그 에뮬레이션 오류를 방지하기 위한 장치 및 방법에 관한 것이다.
H.324M 규격은 무선채널에서의 비디오와 오디오 등을 포함하는 동영상 통화를 위한 규격이다. 상기 H.324M 규격은 다중화에 관한 H.223 규격, 비디오 신호의 부호화를 위한 H.263 규격과 MPEG-4(Moving Picture Experts Group standards 4), 오디오 신호의 부호화를 위한 AMR(Adaptive Multi-Rate) 및 제어 데이터의 부호화를 위한 H.245 규격을 포함한다. 비디오, 오디오 및 제어 데이터들은 상술한 각각의 규격을 사용하여 부호화되고, 상기 부호화된 데이터들은 다중화 규격인 H.223에 따라 적응적으로 프로토콜 데이터 단위(Protocol Data Unit: PDU)로 다중화/역다중화된다.
상기 PDU 데이터들은 HDLC(High Level Data Link Control) 프로토콜에 따라 캡슐화되어 프레임들을 생성한다. 상기 HDLC 프로토콜은 데이터 통신의 OSI 7계층 모델의 제2 계층인 데이터 링크 계층에서 사용되는 전송 프로토콜이고, 데이터 흐름을 제어하고 에러를 보정할 수 있도록 하기 위한 정보를 데이터 프레임 내에 삽입한다. 한편 HDLC에서 상기 프레임들간의 경계는 플래그에 의해 구분된다. 즉 HDLC 프로토콜은 프레임의 시작 또는 종료를 표시하기 위하여 HDLC 플래그를 사용한다. HDLC 플래그는 특정 시퀀스, 예를 들면 비트값이 6연속 1들, 즉 01111110 (0X7e)로 표시되는 시퀀스이다. 플래그로 상기와 같은 패턴을 사용하는 것은 이 비트 패턴이 좌우대칭이므로 연속된 플래그의 파형이 주기적인 클럭 파형을 가지고, 또한 ASCII 코드와 같은 일반 텍스트에서 이 패턴이 자주 발생하지 않기 때문이다.
도 1은 HDLC 플래그가 사용되는 방식을 도시하는 도면이다. 도 1에 도시된 바와 같이, HDLC 프레임의 앞과 뒤에 위치한 플래그들로부터 상기 HDLC 프레임의 시작과 종료가 표시된다.
상기 플래그 시퀀스는 전송될 PDU의 데이터열 중에는 발생되지 않아야 한다. 전송될 PDU의 데이터열 중에 플래그 시퀀스와 동일한 시퀀스가 발생되는 경우, 수신측에서는 이를 플래그와 혼동하게 되는 플래그 에뮬레이션 오류(flag emulation error)가 발생된다.
상술한 플래그 에뮬레이션 오류를 방지하기 위하여 사용되는 종래기술에는 0비트 삽입(0 bit insertion) 기술이 있다. 상기 0비트 삽입 기술은 전송될 PDU의 데이터열을 비트 단위로 모두 체크하여 비트값 1이 연속적으로 5개 발생되는 경우에 0비트 즉, 더미비트를 5개의 연속적인 1 비트열 뒤에 삽입하는 방법이다. 또한 수신측에서는 비트값 1이 연속 5개 발생하는 경우 6번째 비트값이 0이면, 상기 0비트를 송신측에서 삽입된 더미비트로 판단하고 제거한다. 그러나 6번째 비트값이 1인 경우에는 플래그로 판단한다.
상기 0 비트 삽입 기술은 어떤 시퀀스의 데이터열에도 HDLC 프로토콜을 사용할 수 있도록 함으로써, HDLC의 투명성을 유지시켜 준다. 그러나 PDU의 데이터열을 비트단위로 일일이 검사해야 하므로 시스템의 속도가 저하되는 문제가 있다. 특히 이동단말등과 같이 저전력 위주로 설계된 저속의 중앙처리장치(Central Processing Unit)를 사용하는 시스템에서 종래기술과 같이 데이터열을 비트단위로 일일이 검사하여 0비트를 삽입하는 방법은 중앙처리장치에 큰 부하가 된다.
한편 중앙처리장치에 걸리는 부하를 줄이기 위해 상기 0비트 삽입 과정을 하드웨어로 구현한 칩도 개발되었다. 그러나 상기 하드웨어 칩은 디버깅하기가 용이하지 않을 뿐만 아니라, 호환성이 떨어지는 문제점이 있다.
따라서 본 발명의 목적은 시스템의 속도를 저하시키지 않고 플래그 에뮬레이션 오류를 방지할 수 있는 방법을 제공함에 있다.
상기한 목적들을 달성하기 위하여 본 발명은 전송하고자 하는 데이터열을 포함하는 데이터 프레임의 시작과 종료를 소정의 시퀀스를 가지는 플래그들을 사용하여 표시하는 통신시스템에서, 상기 데이터열을 소정의 비트수 단위의 복수개의 단위 데이터 열들로 구분하고 순차적으로 상기 단위 데이터열들을 소정의 테이블에 인덱스들로서 입력하고, 상기 인덱스들에 대응하여 더미비트가 선택적으로 삽입된 출력 데이터열들을 상기 테이블로부터 출력하고, 상기 출력 데이터열들로부터 데이터 프레임을 구성하고, 상기 데이터 프레임의 앞단과 후단에 상기 플래그들을 각각 부가하는 데이터 프레임의 동기화 방법을 제공한다.
또한 상기한 목적을 달성하기 위하여 본 발명은 데이터열을 포함하는 데이터 프레임을 소정의 시퀀스를 가지는 플래그들을 사용하여 프레임의 시작과 종료를 표시하는 통신시스템에서, 상기 수신된 데이터 열을 소정 비트수 단위의 복수의 단위 데이터열들로 구분하고, 상기 단위 데이터열들을 인덱스로서 순차적으로 소정의 테이블에 입력하고, 상기 입력되는 단위 데이터열들에 대응하여 선택적으로 삽입되어 수신된 더미 비트가 제거된 출력 데이터열들을 상기 테이블로부터 순차적으로 출력하는 데이터 프레임의 동기화 방법을 제공한다.
이하 본 발명의 바람직한 실시예가 첨부된 도면들을 참조하여 설명될 것이다. 도면들 중 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 참조번호들 및 부호들로 나타내고 있음에 유의해야 한다. 하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
본 발명은 전송하고자 하는 PDU의 데이터열을 비트 단위로 검사하지 않고, 데이터열을 소정의 비트수 단위로 복수개의 단위 데이터열들로 구분하고, 테이블을 참조하여 상기 각 단위 데이터열을 일괄적으로 검사하는 방법을 제공한다. 이하 본 발명의 명세서에서는 데이터열을 1바이트 단위의 단위 데이터열들로 구분하는 경우를 가정하고 설명될 것이다. 그러나 그 이외의 다른 비트열 단위로 데이터열을 구분하는 경우에도 본 발명이 용이하게 적용될 수 있음을 유의하여야 한다. 또한 본 발명은 플래그로 HDLC 플래그, 즉 01111110 (0X7e)를 사용하는 경우를 가정하고 설명될 것이나, 동일한 성질을 가지는 다른 플래그들을 사용하는 경우에도 적용될 수 있음을 유의하여야 한다.
<표 1>은 본 발명의 바람직한 실시예에 따라 송신측에서 플래그 시퀀스와 동일한 시퀀스를 가진 비트열을 검출 및 변환하기 위해 사용하는 테이블의 일부를 도시한다. 상기 테이블은 데이터열 중 하위 단위 데이터열부터 상위 단위 데이터열 방향으로 검사가 진행되는 경우에 대한 것이다. 그러나 데이터열을 상위 단위 데이터열로부터 하위 단위 데이터열 방향으로 검사하는 경우에도 본 발명이 용이하게 적용될 수 있음은 당업계에서 통상의 지식을 가진 자에게 자명할 것이다.
입 력 | 출 력 | ||||
이전 단위 데이터열의 s | 입력 단위 데이터열 | 출력 단위 데이터열(t) | 속 성 | ||
s | i | b | |||
0 | 10101010 (MSB) | 10101010 (MSB) | 0 | 0 | |
1 | 10010111 | 10010111 | 3 | 0 | |
2 | 11110101 | 11101010 | 1 | 1 | 1 |
4 | 11111111 | 10111110 | 2 | 2 | 11 |
상기 테이블은 모든 가능한 단위 데이터열과 속성 s의 값의 집합을 인덱스로 가지고, 상기 인덱스에 대응하여 출력 단위 데이터열 t와 속성들 s, i, b을 저장한다. 본 발명의 명세서에서 메모리 운용의 편의상 상기 테이블은 상기 입력 단위 데이터열에 더미비트가 선택적으로 삽입되어 생성되는 출력 데이터열을 출력 단위 데이터열 t와 속성 b에 나누어 저장한다. 즉, 상기 출력 데이터열 중 하위 8비트는 출력 단위 데이터열 t에 저장되고, 더미비트의 삽입으로 인하여 8비트를 초과하는 나머지 상위 데이터열은 속성 b에 저장된다. 그러나, 상기 출력 데이터열을 구분하지 않고 그대로 저장하는 것도 가능하며, 이 경우에는 속성 b를 사용할 필요가 없음을 유의하여야 한다. 이하 본 발명의 실시예에서는 출력 단위 데이터열을 1바이트로 고정하는 경우를 가정하고 설명될 것이다.
속성 s는 상기 출력 데이터열에서 최상위비트(Most Significant Bit: MSB)를 기준으로 비트값 1이 연속된 개수를 나타내는 속성이다. 본 발명에서 속성 s는 0 내지 5의 값을 가질 수 있다. 상기 속성 s는 두 개의 입력 단위 데이터열에 걸쳐서 5개 이상의 비트값 1이 연속되는 경우을 감지하기 위하여 다음 입력 단위 데이터열을 검사할 때 테이블 인덱스로서 사용된다. 속성 i는 입력 단위 데이터열에 삽입된 더미 비트, 즉 0 비트의 개수를 나타내는 속성이다.
첫 번째 입력 단위 데이터열의 경우는 5개의 연속적인 비트값 1이 존재하지 않으므로 출력 데이터열은 입력 단위 데이터열과 동일하고, 속성 s와 i는 각각 0으로 설정된다. 두 번째 입력 단위 데이터열의 경우는 역시 5개의 연속적인 비트값 1이 존재하지 않으므로 출력 데이터열은 입력 단위 데이터열과 동일하다. 한편 입력출력 데이터열의 최상위비트를 기준으로 비트값 1이 3개 연속되므로, s는 3으로 설정된다.
세 번째 입력 단위 데이터 열의 경우는 이전 입력 단위 데이터열에 대한 출력 데이터열의 최상위비트에서 연속된 비트값 1의 개수가 2인 경우이고, 현재 입력 단위 데이터 열의 최하위비트에서 4개의 비트값 1이 연속되는 경우이다. 이때, 6개의 1비트들이 두 개의 입력 단위 데이터열에 걸쳐 연속되게 되므로, 현재 입력 단위 데이터열의 최하위비트로부터 3번째 비트 뒤에 더미비트인 0이 삽입된다. 즉 출력 데이터열은 111010101이 되고, 그 중 하위 8비트인 11101010이 출력 단위 데이터열로 저장되고, 출력 데이터열의 최상위 비트인 1은 속성 b에 저장된다. 이 때 s는 1, i는 1이다.
네 번째 입력 단위 데이터 열의 경우 s가 4이므로 최하위비트로부터 2번째 비트에 더미비트가 삽입되고 또 비트값 1이 5번 반복된 후에 더미비트가 다시 삽입되어 출력 데이터열은 1011111011이 된다. 여기서 하위 8비트인 10111110이 출력 단위 데이터열이 되고, 나머지 상위 두 비트열인 11이 속성 b가 된다. 여기서 속성 s는 2이고 i는 2가 된다.
<표 2>는 본 발명의 바람직한 실시예에 따라 수신측에서 수신된 단위 데이터열에 삽입된 더미 비트를 제거하기 위해 사용하는 테이블의 일부를 도시한다.
입 력 | 출 력 | ||||
이전 단위 데이터열의 s | 입력 단위 데이터열 | 출력 단위 데이터열(t) | 속 성 | ||
s | x | c | |||
0 | 10101010 (MSB) | 10101010 (MSB) | 0 | 0 | 0 |
1 | 10010111 | 10010111 | 3 | 0 | 0 |
2 | 11101010 | 1111010X | 0 | 1 | 0 |
0 | 01111110 | 01111110 | 0 | 0 | H |
5 | 01111101 | 111111XX | 1 | 2 | 0 |
5 | 10111110 | 1011111X | 0 | 1 | E |
4 | 11111111 | 11111111 | X | 0 | E |
상기 <표 1>과 유사하게, 상기 테이블은 모든 가능한 단위 데이터열과 속성 s의 값의 집합을 인덱스로 가진다. 속성 s는 입력 단위 데이터열의 최상위 비트를 기준으로 연속된 비트값 1의 개수를 나타내고, x는 입력 단위 데이터열에서 제거되는 더미 비트 0의 개수를 나타낸다. 한편 c은 입력 단위 데이터열의 특성, 즉 수신된 입력 단위 데이터열에 에러가 발생했는지 여부와 HDLC 플래그에 해당하는지 여부를 나타내는 속성이다. 입력 단위 데이터열이 HDLC 플래그에 해당하는 경우에는 c가 H로 설정되고, 에러가 발생한 경우에는 E로 설정된다. 상기 에러는 비트값 1이 6개 이상 연속되는 경우를 포함한다. 그 외에 정상적인 데이터 열이 입력된 경우에는 0으로 설정된다.
도 2는 본 발명의 바람직한 실시예에 따라 송신측에서 전송하고자 하는 데이터열에 더미비트를 선택적으로 삽입하는 방법을 도시하는 순서도이다. 이하 도 2를 참조하여 송신측에서 플래그 시퀀스와 동일한 시퀀스를 가진 데이터열이 전송되는 것을 방지하기 위하여 소정의 더미비트를 삽입하는 방법이 상세히 설명될 것이다.
201단계에서 속성 s와 b를 저장하기 위한 버퍼 S와 B를 초기화한다. 상기 <표 1>에서 정의된 속성들이 상기 도 2에서 동일한 기호를 사용하여 표시되었음을 유의하여야 한다. 또한 임의의 데이터열 r을 저장하기 위한 버퍼 R도 초기화되고, 상기 버퍼 R에 저장된 데이터열의 비트수를 나타내는 변수인 a도 초기화된다. 한편 후술하는 바와 같이 전송하고자 하는 원본 데이터열의 단위 데이터열을 카운트하기 위한 변수 p도 초기화된다. 또한 도시되지 않았지만, 속성 i를 저장하기 위한 버퍼 I도 초기화한다.
203단계에서 전송하고자 하는 원본 데이터 열 Y(k) (k = 0, 1, ..., N-1) 중 p번째 바이트인 Y(p)를 1바이트의 크기를 가지는 버퍼 D에 저장한다. 여기서 원본 데이터열 Y(k)는 N 바이트의 길이를 가진다. 205단계에서 상기 버퍼 D에 저장된 데이터열을 입력 단위 데이터열로서 상기 s값과 함께 상기 테이블에 인덱스로서 입력하고, 상기 인덱스에 해당하는 출력 단위 데이터열 t를 1바이트의 크기를 가지는 버퍼 T에 저장한다. 또한 상기 입력 단위 데이터열의 속성 s와 i 및 b를 출력하고, 각각 버퍼 S와 I 및 B에 저장한다. 여기서 상기 속성 b는 상술한 바와 같이 버퍼 T의 크기를 1바이트로 한정하지 않는 경우에는 불필요한 속성임을 유의하여야 한다.
207단계에서 상기 버퍼 B에 저장된 비트열과 버퍼 T에 저장된 출력 단위 데이터열을 버퍼 R에 저장된 데이터열의 상위 비트들에 연결하여 저장한다. 예를 들어, 현재 버퍼 R에 데이터열 1011이 저장되어 있고, 버퍼 T에 데이터열 10001111이, 버퍼 B에 비트열 11이 저장되어 있는 경우, 상기 207단계에서 버퍼 R에 비트열 11100011111011을 저장한다. 이 때 상기 버퍼 R에 저장된 비트열은 임시 출력 비트열 또는 임시 출력 데이터열이라 정의한다.
209단계에서 상기 R에 저장된 임시 출력 비트열 중 하위 1바이트를 최종 출력 단위 데이터열로서 출력1열은 8비트만큼 오른쪽으로 쉬프트된다. 즉, 상기 임시 출력 비트열 중 출력 버퍼 Q에 저장되는 1바이트의 데이터열 이외의 잔여 데이터열만이 버퍼 R에 저장된다.
211단계에서 더미비트의 삽입여부, 즉 버퍼 I에 저장된 i가 0인지 여부를 판단하고, 더미비트가 삽입되지 않은 경우에는 231단계로 진행한다. 그러나 더미비트가 삽입된 경우에는 213단계로 진행하고, 몇 개의 더미비트가 삽입되었는지를 판단한다. 1개의 더미비트가 삽입된 경우에는 215단계로 진행하고, a를 1 증가시키고, 217단계로 진행한다. 217단계에서는 버퍼 R에 저장된 비트열이 1바이트를 구성하는지를 판단한다. 버퍼 R에 이미 1바이트의 비트열이 저장된 경우에는 219단계에서 상기 R에 저장된 비트열을 최종 출력 단위 데이터열로서 버퍼 Q에 저장하고, a를 초기화한다. 그러나 상기 217단계에서 버퍼 R에 1바이트 미만의 비트열이 저장된 것으로 판단되는 경우에는 아직 단위 데이터열을 구성되지 못하였으므로 231단계로 진행한다.
다시 213단계로 돌아가서, 삽입된 더미비트의 개수가 1이상인 경우, 즉 2인 경우에는 221단계에서 R에 저장된 비트열의 개수를 나타내는 속성 a의 값을 2 증가시키고 223단계로 진행한다. 여기서 본 발명의 명세서에서는 전송하고자 하는 데이터열을 1바이트 단위로 처리하고 01111110 (0X7e)의 HDLC 플래그를 사용하기 때문에 삽입될 수 있는 최대 더미비트의 수는 2가 되지만, 그 변형이 가능함은 당업계에서 통상의 지식을 가진 자에게 자명할 것이다.
223단계에서는 R 버퍼에 저장된 비트열이 1바이트, 즉 8비트 이상인지를 판단하고, 1바이트를 구성하지 못하는 경우에는 231단계로 진행한다. 그러나 8비트 이상인 경우에는 225단계로 진행한다. 225단계에서는 R버퍼에 저장된 비트열이 1바이트를 초과하는지 여부를 판단하고, 1바이트의 비트열이 저장된 경우에는 227단계로 진행한다. 상기 227단계에서 R 버퍼에 저장된 비트열을 최종 출력 단위 데이터열로서 Q 버퍼에 저장하고, a를 초기화한다. 한편 225단계에서 R 버퍼에 1바이트를 초과하는 비트열이 저장된 것으로 판단되는 경우에는 229단계에서 R 버퍼에 저장된 비트열 중 하위 1바이트만을 Q버퍼에 저장하고, R버퍼의 비트열은 8비트만큼 오른쪽으로 쉬프트 시킨다. 이 때 a값은 1로 설정한다.
231단계에서 p와 전송하고자 하는 원본 데이터열의 길이 N을 비교하고, p가 N보다 작은 경우에는 233단계에서 p를 1 증가시키고 203단계로 돌아간다. 그러나 p가 N과 동일한 경우에는 원본 데이터 열이 모두 처리된 것이므로 235단계로 진행하고, 235단계에서 HDLC 플래그를 프레임에 추가한 후 상기 과정을 종료한다.
도 3은 본 발명의 바람직한 실시예에 따라 수신측에서 수신된 데이터열로부터 더미비트를 제거하는 방법을 도시하는 순서도이다. 이하 도 3를 참조하여 플래그 시퀀스와 동일한 시퀀스를 가진 데이터 열이 전송되는 것을 방지하기 위하여 삽입된 소정의 더미비트를 제거하는 방법이 상세히 설명될 것이다.
301단계에서 속성 x와 s를 저장하기 위한 버퍼 X와 S가 초기화된다. 상기 <표 2>에서 정의된 속성들이 상기 도 3에서 동일한 기호를 사용하여 표시되었음을 유의하여야 한다. 또한 임의의 데이터열 r을 저장하기 위한 버퍼 R과 상기 버퍼 R에 저장된 비트열의 길이를 나타내는 속성인 a가 저장되는 버퍼 A도 초기화된다. 한편 후술하는 바와 같이 수신된 원본 데이터열의 단위 데이터열을 카운트하기 위한 변수 p도 초기화된다.
303단계에서 수신된 원본 데이터 열 Y(k) (k = 0, 1, ..., N-1) 중 p번째 바이트인 Y(p)를 1바이트의 크기를 가지는 버퍼 D에 저장한다. 여기서 원본 데이터 열 Y(k)는 N 바이트의 길이를 가진다. 305단계에서 상기 속성 s와 상기 버퍼 D에 저장된 데이터열을 입력 단위 데이터열로서 상기 <표 2>에 예시된 테이블에 입력하고, 해당하는 출력 단위 데이터열 t를 1바이트의 크기를 가지는 버퍼 T에 저장한다. 또한 상기 입력 단위 데이터열의 속성 s와 x를 출력하고, 각각 버퍼 S와 X에 저장한다. 한편 속성 c도 출력된다.
307단계에서 상기 입력 단위 데이터열이 HDLC 플래그에 해당하는지 또는 상기 입력 단위 데이터열에 에러가 존재하는지 여부를 검사한다. 즉, 상기 테이블로부터 출력되는 상기 속성 c가 H인 경우에는 HDLC 플래그로 판단하고, c가 E인 경우에는 에러가 발생한 것으로 판단한다. 입력 단위 데이터열이 HDLC 플래그도 아니고 에러도 발생되지 않은 경우에는 309단계로 진행하여 통상의 더미비트 제거 절차를 수행한다.
309단계에서 제거된 더미비트의 존재 여부를 검사하고, 제거된 더미비트가 없는 경우에는 311단계로 진행한다. 그러나 제거된 더미비트가 있는 경우에는 315단계로 진행하고, 315단계에서 버퍼 R에 저장된 비트열의 길이 a와 상기 제거된 더미비트의 개수 x를 비교한다. a가 x 이상인 경우에는 t 비트열의 비트수와 r 비트열의 비트수를 더하면 1바이트 이상이 되므로, 317단계에서 a에서 x를 차감한 값을 a에 저장하고 311단계로 진행한다. 그러나 a가 x보다 작은 경우에는 t 비트열의 비트수와 r 비트열의 비트수를 더해도 1바이트를 구성하지 못하므로 321단계에서 r 비트열의 비트수와 t 비트열의 비트수를 더한 값, 즉 a+(8-x)를 a값으로 설정하고 355단계로 진행한다.
제거된 더미비트가 없거나 r 비트열과 t 비트열로부터 1바이트가 구성되는 경우에는 311단계에서 R 버퍼의 r 비트열의 최상위비트의 바로 상위 비트들에 t 비트열을 연결 저장한다. 313단계에서는 r 비트열 중 하위 1바이트를 최종 출력 단위 데이터열로서 버퍼 Q에 저장하고 r 비트열은 8비트만큼 오른쪽으로 쉬프트한 후 355단계로 진행한다.
한편 307단계에서 입력 단위 데이터열이 HDLC 플래그에 해당하거나 에러가 존재하는 경우에는 323단계로 진행한다. 323단계에서 입력 단위 데이터열에 에러가 존재하는 것으로 판단된 경우에는 353단계로 진행한다. 상기 에러는 수신된 데이터열이 6개 이상의 연속적인 비트값 1을 포함하는 경우에 발생한다.
323단계에서 입력 단위 데이터열이 HDLC 플래그에 해당하는 것으로 판단된 경우에는 325단계로 진행한다. 325단계에서 R 버퍼에 저장된 비트열이 존재하는지 여부를 판단하고, R 버퍼에 저장된 비트열이 없는 경우에는 상기 입력 단위 데이터열이 그 자체로 HDLC 플래그에 해당하는 것으로 판단하고 327단계로 진행한다. 327단계에서 속성 s와 r을 초기화하고 335단계로 진행한다. 335단계는 상기 검출된 HDLC 플래그가 시작 플래그인지 종료 플래그인지 여부를 검사하는 단계이다. 여기서 Prev_ HDLC는 시작 플래그가 검출되면 True 값을 가지도록 설정되는 변수이다. Prev_ HDLC이 False 값을 가지는 경우, 즉 아직 시작 플래그가 수신되지 않은 경우에는 상기 검출된 HDLC 플래그를 시작 플래그로 판단하고 337단계로 진행한다. 상기 337단계에서는 Prev_HDLC를 True 값으로 설정한다. 그러나 상기 335단계에서 Prev_HDLC의 값이 이미 True로 설정되어 있는 경우에는 이미 시작 플래그가 수신된 경우이므로, 상기 검출된 HDLC 플래그를 종료 플래그로 판단하고 339단계로 진행한다. 상기 339단계에서 버퍼 Q에 저장된 데이터가 있는 경우에는 341단계로 진행하고 하나의 PDU에 대한 더미비트 제거과정이 완료된 것으로 판단하고 상기 과정을 종료한다. 한편 상기 339단계에서 버퍼 Q에 저장된 데이터가 없는 경우에는 355단계로 진행한다. 즉, 수신된 데이터 없이 1개 이상의 플래그가 연속 수신된 경우에는 제일 처음에 수신된 플래그 이외에 그 뒤에 수신된 플래그들은 무시된다.
한편 325단계에서 R 버퍼에 저장된 비트열이 존재하는 경우에는 상기 입력 단위 데이터열의 일부가 R 버퍼에 저장된 비트열과 함께 플래그를 구성하는 것으로 판단하고 329단계로 진행한다. 329단계에서 송신측에서 삽입된 더미비트의 비트수와 수신측에서 제거된 더미비트의 비트수가 일치하는지를 검사한다. 즉, 수신된 데이터열에서 더미비트들을 제거한 데이터열의 총 비트수가 8의 배수가 되는지를 검사한다. 삽입된 더미비트수와 제거된 더미비트수가 일치하는 것으로 판단되는 경우에는 331단계로 진행하고 R버퍼의 r 비트열의 최상위비트로부터 상위비트에 t 비트열을 연결하여 저장한다. 이때 R 버퍼에 저장된 비트열은 HDLC 플래그가 된다. 333단계에서 상기 r 비트열을 8비트만큼 오른쪽으로 쉬프트하고 335단계로 진행한다.
그러나 삽입된 더미비트수와 제거된 더미비트수가 불일치하는 경우에는 343단계로 진행하고 상기 검출된 HDLC 플래그가 시작 플래그인지 여부를 판단한다. 상기 343단계에서 Prev_HDLC가 False인 경우에는 상기 검출된 HDLC 플래그가 새로운 시작 플래그인 것으로 판단하고 345단계로 진행한다. 345단계에서 플래그를 제외한 나머지 비트열을 버퍼 R에 저장하고 그 비트수를 a에 저장한다. 347단계에서 Prev_HDLC를 True로 설정하고 355단계로 진행한다.
그러나 343단계에서 Prev_HDLC가 True인 경우에는 이미 시작 플래그가 존재하는 것이므로 한 프레임 내 삽입된 비트의 개수와 제거된 비트의 개수가 서로 달라서 에러가 발생한 것으로 판단하고 351단계로 진행한다. 351단계에서는 속성 r,a 및 s를 초기화하고 Prev_HDLC를 FALSE로 설정한 후 355단계로 진행한다. 355단계에서는 현재 처리된 단위 데이터열이 수신된 원본 데이터열의 마지막 단위 데이터열인지를 판단하고, 마지막 단위 데이터열이 아닌 경우 357단계에서 p값을 1 증가시킨 후 303단계로 복귀한다. 현재 처리된 단위 데이터열이 마지막 단위 데이터열인 경우에는 상기 과정을 종료한다.
한편 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
상술한 바와 같이, 본 발명은 데이터 프레임의 데이터 열들을 비트 단위로 처리하지 않고 바이트 단위로 처리함으로써 시스템의 과부하를 방지할 수 있는 이점이 있다. 또한 본 발명은 데이터 프레임의 데이터열들을 테이블을 사용하여 일괄적으로 검사함으로써 더미 비트 삽입과정의 처리속도를 향상시킬 수 있는 이점이 있다.
도 1은 통상적인 HDLC 시작 플래그와 종료 플래그를 도시하는 도면
도 2는 본 발명의 바람직한 실시예에 따라 송신측에서 전송하고자 하는 데이터열에 더미비트를 선택적으로 삽입하는 방법을 도시하는 순서도
도 3은 본 발명의 바람직한 실시예에 따라 수신측에서 수신된 데이터열로부터 더미비트를 제거하는 방법을 도시하는 순서도
Claims (22)
- 전송하고자 하는 데이터열을 포함하는 데이터 프레임의 시작과 종료를 플래그들을 사용하여 표시하고, 상기 플래그들은 소정의 비트값이 소정 개수만큼 연속되는 비트열을 포함하는 시퀀스를 가지는 통신시스템에서, 상기 플래그 시퀀스와 동일한 데이터열이 전송되는 것을 방지하기 위한 데이터 프레임의 동기화 방법에 있어서,상기 데이터열을 소정의 비트수 단위의 N개의 단위 데이터열들로 구분하고, 상기 N개의 단위 데이터열들 중 검사하고자 하는 n번째 단위 데이터열을 소정의 테이블에 인덱스로서 입력하는 과정과,상기 테이블로부터 상기 인덱스에 대응하여 상기 단위 데이터열에 더미비트들이 선택적으로 삽입된 출력 데이터열을 상기 출력 데이터열의 속성과 함께 출력하고, 상기 속성은 상기 출력 데이터열 중 최상위비트로부터 연속되는 상기 소정의 비트값의 개수를 나타내는 과정을 포함하여 구성되고,상기 인덱스는 n-1번째 단위 데이터열에 대하여 상기 테이블로부터 출력된 속성을 더 포함함을 특징으로 하는 상기 방법.
- 제 1항에 있어서,상기 테이블은 모든 가능한 단위 데이터열들과 상기 속성이 가질 수 있는 모든 값들의 집합에 대응하여 더미비트가 선택적으로 삽입된 출력 데이터열들과 속성들의 값들을 저장하고 있음을 특징으로 하는 상기 방법.
- 제 1항에 있어서,상기 데이터 프레임의 동기화 방법은 상기 n번째 단위 데이터열에 대한 출력 데이터열로부터 임시 출력 데이터열을 구성하는 과정과,상기 임시 출력 데이터열을 상기 소정의 비트수 단위의 출력 단위 데이터열과 나머지 잔여 데이터열로 구분하는 과정을 더 포함하여 구성되고,상기 임시출력 데이터열은 n-1번째 단위 데이터열에 대한 잔여 데이터열을 더 포함하여 구성됨을 특징으로 하는 상기 방법.
- 제 3항에 있어서,상기 데이터 프레임의 동기화 방법은 상기 잔여 데이터열의 비트수가 상기 소정의 비트수 이상인 경우에는 상기 잔여 데이터열을 상기 소정의 비트수 단위의 출력 단위 데이터열과 새로운 잔여 데이터열로 다시 구분하는 과정을 더 포함함을 특징으로 하는 상기 방법.
- 데이터열을 포함하는 데이터 프레임의 시작과 종료를 플래그들을 사용하여 표시하고, 상기 플래그들은 소정의 비트값이 소정 개수만큼 연속되는 비트열을 포함하는 시퀀스를 가지는 통신시스템에서, 수신되는 데이터 프레임의 동기화 방법에 있어서,수신되는 데이터열을 소정의 비트수 단위의 N개의 단위 데이터열들로 구분하는 과정과,상기 N개의 단위 데이터열들 중 n-1번째 단위 데이터열의 속성을 정의하고, 상기 속성은 해당 단위 데이터열의 최상위비트로부터 연속되는 상기 소정의 비트값의 개수를 나타내는 과정과,n번째 단위 데이터열과 상기 n-1번째 단위 데이터열의 속성을 소정의 테이블에 입력하고 해당하는 출력 데이터열과 상기 n번째 단위 데이터열의 속성을 출력하는 과정을 포함하여 구성됨을 특징으로 하는 상기 방법.
- 제 5항에 있어서,상기 테이블은 모든 가능한 단위 데이터열들과 속성값들의 집합에 대응하여 선택적으로 삽입된 더미 비트가 제거된 출력 데이터열들과 해당 속성들을 저장하고 있음을 특징으로 하는 상기 방법.
- 제 5항에 있어서,상기 데이터 프레임의 동기화 방법은 상기 n번째 단위 데이터열에 대한 출력 데이터열로부터 임시 출력 데이터열을 구성하는 과정과,상기 임시 출력 데이터열을 상기 소정의 비트수로 구성되는 출력 단위 데이터열과 나머지 잔여 데이터열로 구분하는 과정을 더 포함하여 구성되고,상기 임시출력 데이터열은 n-1번째 단위 데이터열에 대한 잔여 데이터열을 더 포함하여 구성됨을 특징으로 하는 상기 방법.
- 제 7항에 있어서,상기 프레임의 동기화 방법은 상기 잔여 데이터열의 비트수가 상기 소정의 비트수 이상인 경우에는 상기 잔여 데이터열을 상기 소정의 비트수 단위의 출력 단위 데이터열과 새로운 잔여 데이터열로 다시 구성하는 과정을 더 포함함을 특징으로 하는 상기 방법.
- 전송하고자 하는 데이터열을 포함하는 데이터 프레임의 시작과 종료를 소정의 시퀀스를 가지는 플래그들을 사용하여 표시하는 통신시스템에서, 상기 데이터 프레임의 동기화 방법에 있어서,상기 데이터열을 소정의 비트수 단위의 복수개의 단위 데이터 열들로 구분하고 순차적으로 상기 단위 데이터열들을 소정의 테이블에 인덱스들로서 입력하는 과정과,상기 인덱스들에 대응하여 더미비트가 선택적으로 삽입된 출력 데이터열들을 상기 테이블로부터 출력하는 과정과,상기 출력 데이터열들로부터 데이터 프레임을 구성하고, 상기 데이터 프레임의 앞단과 후단에 상기 플래그들을 각각 부가하는 과정을 포함하여 구성됨을 특징으로 하는 상기 방법.
- 제 9항에 있어서,상기 테이블은 모든 가능한 단위 데이터열들에 대응하여 상기 플래그의 시퀀스와 동일한 시퀀스를 포함하는 데이터열이 전송되는 것을 방지하기 위하여 소정의 더미 비트가 선택적으로 삽입된 출력 데이터열들을 저장하고 있음을 특징으로 하는 상기 방법.
- 제 10항에 있어서,상기 플래그의 시퀀스는 소정의 비트값이 소정 개수만큼 연속되는 비트열을 포함함을 특징으로 하는 상기 방법.
- 제 11항에 있어서,상기 테이블은 상기 출력 데이터열들의 최상위비트로부터 연속되는 상기 소정의 비트값들의 개수를 상기 각 출력 데이터열들의 속성값들로 저장하고 있음을 특징으로 하는 상기 방법.
- 제 12항에 있어서,상기 인덱스는 상기 속성값을 포함하여 구성됨을 특징으로 하는 상기 방법.
- 제 9항에 있어서,상기 데이터 프레임의 동기화 방법은 상기 출력 데이터열로부터 임시 출력 데이터열을 구성하는 과정과,상기 임시 출력 데이터열을 상기 소정의 비트수 단위의 출력 단위 데이터과 나머지 잔여 데이터열로 구성하는 과정과,상기 잔여 데이터열은 순차적으로 출력되는 다음 출력 데이터열과 연결되어 상기 다음 출력 데이터열에 대한 임시 출력 데이터열을 구성하는 과정을 더 포함하여 구성됨을 특징으로 하는 상기 방법.
- 제 14항에 있어서,상기 데이터 프레임의 동기화 방법은 상기 잔여 데이터열의 비트수가 상기 소정의 비트수 이상인 경우에는 상기 잔여 데이터열을 출력 단위 데이터열과 새로운 잔여 데이터열로 다시 구성하는 과정을 더 포함함을 특징으로 하는 상기 방법.
- 데이터열을 포함하는 데이터 프레임을 소정의 시퀀스를 가지는 플래그들을 사용하여 프레임의 시작과 종료를 표시하고 상기 플래그 시퀀스와 동일한 시퀀스의 데이터열이 전송되지 않도록 더미비트가 데이터 프레임의 데이터열에 선택적으로 삽입되는 통신시스템에서, 상기 데이터 프레임을 수신하고 동기화하는 방법에 있어서,상기 수신된 데이터 열을 소정 비트수 단위의 복수의 단위 데이터열들로 구분하는 과정과,상기 단위 데이터열들을 인덱스로서 순차적으로 소정의 테이블에 입력하고, 상기 입력되는 단위 데이터열들에 대응하여 상기 더미비트가 제거된 출력 데이터열들을 상기 테이블로부터 순차적으로 출력하는 과정을 포함하여 구성됨을 특징으로 하는 상기 방법.
- 제 16항에 있어서,상기 테이블은 모든 가능한 단위 데이터열들에 대응하여 상기 더미 비트가 제거된 출력 데이터열들을 저장하고 있음을 특징으로 하는 상기 방법.
- 제 17항에 있어서,상기 플래그의 시퀀스는 소정의 비트값이 소정 개수만큼 연속되는 비트열을 포함함을 특징으로 하는 상기 방법.
- 제 18항에 있어서,상기 테이블은 상기 출력 데이터열들의 최상위비트로부터 연속되는 상기 소정의 비트값들의 개수를 상기 각 출력 데이터열들의 속성값들로 저장하고 있음을 특징으로 하는 상기 방법.
- 제 19항에 있어서,상기 인덱스는 상기 속성값을 포함하여 구성됨을 특징으로 하는 상기 방법.
- 제 16항에 있어서,상기 데이터 프레임의 동기화 방법은 상기 출력 데이터열로부터 임시 출력 데이터열을 구성하는 과정과,상기 임시 출력 데이터열을 상기 소정의 비트수 단위의 출력 단위 데이터열과 나머지 잔여 데이터열로 구성하는 과정과,상기 잔여 데이터열은 순차적으로 출력되는 다음 출력 데이터열과 연결되어 상기 다음 출력 데이터열에 대한 임시 출력 데이터열을 구성하는 과정을 더 포함하함을 특징으로 하는 상기 방법.
- 제 21항에 있어서,상기 데이터 프레임의 동기화 방법은 상기 잔여 데이터열의 비트수가 상기 소정의 비트수 이상인 경우에는 상기 잔여 데이터열을 출력 단위 데이터열과 새로운 잔여 데이터열로 다시 구성하는 과정을 더 포함함을 특징으로 하는 상기 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2003-0009070A KR100474722B1 (ko) | 2003-02-13 | 2003-02-13 | 디지털 통신시스템에서 데이터 프레임을 동기화하는 방법 |
US10/777,430 US20040161069A1 (en) | 2003-02-13 | 2004-02-12 | Method for synchronizing data frames in a digital communication system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2003-0009070A KR100474722B1 (ko) | 2003-02-13 | 2003-02-13 | 디지털 통신시스템에서 데이터 프레임을 동기화하는 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20040073103A KR20040073103A (ko) | 2004-08-19 |
KR100474722B1 true KR100474722B1 (ko) | 2005-03-10 |
Family
ID=32844818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2003-0009070A KR100474722B1 (ko) | 2003-02-13 | 2003-02-13 | 디지털 통신시스템에서 데이터 프레임을 동기화하는 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20040161069A1 (ko) |
KR (1) | KR100474722B1 (ko) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8667194B2 (en) * | 2003-12-15 | 2014-03-04 | Finisar Corporation | Two-wire interface in which a master component monitors the data line during the preamble generation phase for synchronization with one or more slave components |
US8225024B2 (en) | 2004-03-05 | 2012-07-17 | Finisar Corporation | Use of a first two-wire interface communication to support the construction of a second two-wire interface communication |
KR100629179B1 (ko) * | 2004-12-31 | 2006-09-28 | 엘지전자 주식회사 | 유기 전계발광 표시소자 및 그 구동방법 |
US20060282713A1 (en) * | 2005-05-31 | 2006-12-14 | Yi Weng | Efficient interleaver/de-interleaver desigh for the turbo decoder in a 3g wcdma system |
US8005116B2 (en) * | 2006-11-16 | 2011-08-23 | Cisco Technology, Inc. | System and method for mitigating the effects of bit insertion in a communications environment |
US8315249B2 (en) * | 2009-05-22 | 2012-11-20 | Comcast Cable Communications, Llc | Integration of voice chat services |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2709900B1 (fr) * | 1993-09-06 | 1995-10-13 | Alcatel Mobile Comm France | Substitution des bits de synchronisation dans une trame de transmission. |
US5675617A (en) * | 1994-10-05 | 1997-10-07 | Motorola, Inc. | Synchronous protocol encoding and decoding method |
US6529528B1 (en) * | 1997-06-27 | 2003-03-04 | Samsung Electronics Co., Ltd. | Multimedia multiplexing method |
JP3337969B2 (ja) * | 1997-09-08 | 2002-10-28 | 沖電気工業株式会社 | データ送信装置及びデータ受信装置 |
US20020093978A1 (en) * | 2001-01-12 | 2002-07-18 | Motorola, Inc | Synchronous protocol encoding and decoding method |
-
2003
- 2003-02-13 KR KR10-2003-0009070A patent/KR100474722B1/ko not_active IP Right Cessation
-
2004
- 2004-02-12 US US10/777,430 patent/US20040161069A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20040161069A1 (en) | 2004-08-19 |
KR20040073103A (ko) | 2004-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6747580B1 (en) | Method and apparatus for encoding or decoding data in accordance with an NB/(N+1)B block code, and method for determining such a block code | |
US6496540B1 (en) | Transformation of parallel interface into coded format with preservation of baud-rate | |
JP5736389B2 (ja) | 軽減チャンネルフォーマットでの多チャンネル信号の送信及び検出 | |
CN100353690C (zh) | 使用普通网络分组发送多个8b/10b位流的多路传输系统 | |
KR100311992B1 (ko) | 시리얼링크를통해다중데이타신호를전송하는시스템및방법 | |
CA2180189C (en) | Variable length coded data transmission device | |
US7995696B1 (en) | System and method for deskewing data transmitted through data lanes | |
EP0824817B1 (en) | Apparatus and method for communicating data word blocks together with control words | |
WO2014084072A1 (ja) | イメージセンサおよびそのデータ伝送方法、情報処理装置および情報処理方法、電子機器、並びにプログラム | |
WO2007094630A1 (en) | Method and system for data partitioning and encoding for transmission of uncompressed video over wireless communication channels | |
US6859154B2 (en) | Method to overlay a secondary communication channel onto an encoded primary communication channel | |
KR100556844B1 (ko) | 동영상 전송 시스템의 에러 검출 방법 | |
US7515613B2 (en) | Data transmission apparatus and data transmission method | |
US6127953A (en) | Apparatus and method for compressing data containing repetitive patterns | |
KR100474722B1 (ko) | 디지털 통신시스템에서 데이터 프레임을 동기화하는 방법 | |
US7187863B2 (en) | Identifying substreams in parallel/serial data link | |
US7302631B2 (en) | Low overhead coding techniques | |
US20060038707A1 (en) | Coding and decoding method for a sequence of elements, signal, coder, decoder, corresponding computer programs and storage means | |
JP7558938B2 (ja) | 送信装置、送信方法、受信装置、受信方法、および送受信装置 | |
US20170214926A1 (en) | System and method for transcoding data | |
US9485056B2 (en) | Optical transceiver and data mapping method using thereof | |
JPH05219488A (ja) | 映像信号送信装置及び映像信号受信装置 | |
JPWO2010097876A1 (ja) | シリアルデータ送受信装置およびデジタルカメラ | |
JP2017050734A (ja) | シリアル通信装置、通信システム及び通信方法 | |
US6707396B2 (en) | Device and method for parallel processing implementation of bit-stuffing/unstuffing and NRZI-encoding/decoding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20080108 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |