KR100358025B1 - 프로세서와통신채널사이의인터페이싱 - Google Patents

프로세서와통신채널사이의인터페이싱 Download PDF

Info

Publication number
KR100358025B1
KR100358025B1 KR1019980706792A KR19980706792A KR100358025B1 KR 100358025 B1 KR100358025 B1 KR 100358025B1 KR 1019980706792 A KR1019980706792 A KR 1019980706792A KR 19980706792 A KR19980706792 A KR 19980706792A KR 100358025 B1 KR100358025 B1 KR 100358025B1
Authority
KR
South Korea
Prior art keywords
data
processor
memory
interrupt
interrupt signal
Prior art date
Application number
KR1019980706792A
Other languages
English (en)
Other versions
KR19990087380A (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 모토로라 인코포레이티드
Publication of KR19990087380A publication Critical patent/KR19990087380A/ko
Application granted granted Critical
Publication of KR100358025B1 publication Critical patent/KR100358025B1/ko

Links

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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/128Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine for dedicated transfers to a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M11/00Telephonic communication systems specially adapted for combination with other electrical systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)

Abstract

본 발명은 프로세서(103)와 통신 채널(105) 사이를 인터페이싱하기 위한 장치(101) 및 방법에 관한 것이며, 상기 프로세서는 응용 프로그램을 갖는 컴퓨터와 같은 데이타 단말 장치(102) 내에서 동작 가능하고, 통신 채널을 통해 데이타 송신 및 수신을 제공하기 위해, 추가 또는 별도의 마이크로프로세서나 디지탈 신호 처리 장치없이 컴퓨터 프로세서를 사용한다. 상기 장치 및 방법은 특정한 데이타 송신 레이트에 대응하는 제1 확정 주파수로 인터페이스 장치(101)와 통신 채널(105) 사이의 데이타 전송을 제공한다. 상기 장치 및 방법은 제2 불확정 주파수로 인터페이스 장치(101)와 프로세서(103) 사이의 데이타 전송을 제공하며, 컴퓨터 프로세서(103)에 의한 변조 및 복조와 같은 데이타 송신(또는 데이타 수신)과 데이타 처리 사이에 메모리(115) 내의 임시 데이타 기억 장소를 제공한다. 상기 장치 및 방법은 처리를 위한 수신 데이타의 존재 및 송신을 위한 디지탈 데이타의 부재를 나타내는 프로세서로의 인터럽트 신호를 생성하는 것을 제공한다.

Description

프로세서와 통신 채널 사이의 인터페이싱{INTERFACING BETWEEN A COMMUNICATIONS CHANNEL AND A PROCESSOR}
개인용 컴퓨터, 워크스테이션, 및 데이타 단말기와 같이, 프로그래밍 가능한 프로세서 제어 데이타 단말기 장비가 학교, 작업장, 및 일반적인 단체에서 더욱 더 일반화되어 가고 있다. 프로세서 성능이 현저하게 향상되어, 모토롤라의 PowerPC®및 인텔의 Pentium®과 같은 보다 고속이고 보다 강력한 프로세서가 컴퓨터에 사용되고 있다. 이러한 프로세서들은 다양한 기능을 수행하도록 프로그래밍될 수 있다.
아날로그 및 디지탈 모뎀, ISDN 단말기 어댑터, 및 컴퓨터 네트워킹 장치와 같은 데이타 통신 장치들("DCDs")은 공중 교환 전화망("PSTN") 또는 종합 정보 통신망("ISDN")과 같은 통신 채널을 통해 다양한 DTE들 간의 데이타 통신에 사용되어 왔다. 이러한 DCD는 전형적으로 컴퓨터 하우징 내에 사용되는 데스크탑 모뎀, 랙마운트 모뎀, PCMCIA 카드, 또는 별도의 회로 보드(카드)와 같은 별도의 장치들을 구비하여 왔다. 더우기, 종래 기술에서는, 이러한 DCD가 또한 디지탈 신호 프로세서("DSP") 및 마이크로프로세서, 또는 DSP 기능과 마이크로포로세서 기능을 조합한 단일 프로세서와 같은 여러 프로세서들을 전형적으로 포함한다. DCD는 연산 및 수학적으로 강력하여, 변조, 복조, 코딩, 디코딩, 데이타 압축, 에러 정정, 프리코딩, 균등화(equalization), DTE와의 인터페이싱과 같은 기능, 및 다른 제어 기능을 수행하기 때문에 DCD는 독립적인 처리 능력을 필요로 하고 있다. 게다가, DCD는 국제 전기 통신 연맹("ITU") V.34 표준 하에서 이용 가능한 28.8 kbps과 같은 고속의 전송 속도로 V.42 및 V.42 비스 표준 하에서 이용 가능한 데이타 압축 및 에러 정정 프로토콜로 동작하여 왔다. 이러한 연산적으로 강력한 처리는 일반적으로 이용 가능한 또는 DTE에 사용된 보다 일반적인 다목적 프로세서에서 바람직한 것보다 높은 프로세서 성능과 보다 많은 처리 시간을 필요로 하는 경향이 있었다.
PowerPC®및 Pentium®과 같은 DTE내의 범용 프로세서의 프로세서 성능 향상으로, DCD 내에서 이용 가능한 추가적이고 독립적인 처리 능력은 더이상 필요하지 않게 되고 과다한 것이 될 수 있다. 이러한 향상된 처리 능력이 DTE 내에서 이용 가능하다면, 적절한 하드웨어와 소프트웨어로, 워드 프로세싱, 수학적 연산, 및 그래픽과 같은 다양한 컴퓨터 응용 프로그램들의 기능과, 변조, 복조, 및 데이타 압축과 같은 DCD의 기능 양자 모두를 수행할 수 있는, 단일 프로세서를 제공하는 것이 비용면에서 보다 효과적이고 효율적일 것이다. 이러한 조합 프로세서 모뎀 설비는 1990년 10월 23일에 블랙웰 등(Blackwell et al.)에게 허여되었으며, 본 명세서에 포함되어 있는 미국 특허 제 4,965,641호에 개시되어 있다.
현재 v.34 및 v.42 비스 프로토콜과 호환성이 있는 DCD에 요구되는 증가된 데이타 전송 속도와 다른 복합 기능으로, 프로세서 모뎀의 구현은 복잡해지고 어려워질 수 있으며 증가하고 있는 잠재적으로 비호환성 성능 요건들을 가질 수 있다. 예를 들어, 프로세서 모뎀 구현의 난점은 채널을 통해 실제 데이타 전송에 전형적으로 이용 가능한 것보다 훨씬 빠른 속도로 전송을 위해 데이타를 처리할 수 있는 새로운 범용 컴퓨터 프로세서에서 이용 가능한 높은 처리 속도에 관련되어 있다. 예를 들어, 컴퓨터 프로세서는 V.34를 위한 28.8 kbps 또는 ISDN을 위한 64 내지 128 kbps와 같은 전형적인 데이타 전송 속도보다 차수가 높은 크기의 메가헤르쯔 또는 기가헤르쯔 범위의 속도로 데이타를 처리할 수 있다. 이에 따라, 데이타는, 전형적으로 컴퓨터 프로세서의 처리 속도보다 훨씬 느린, 그래서 컴퓨터 프로세서의 전체 처리 능력을 효과적으로 사용할 수 없게 하는, 특정한 소정의 데이타 전송 속도로 통신 채널로부터 연속적으로 도달할 수 있다. 예를 들어, 프로세서가 동시에 다른 응용 기능을 수행할 수 있는 경우에, 28.8 또는 14.4 kbps에서 프로세서가 데이타의 수신을 기다리는 것은 컴퓨터 프로세서 능력의 비효율적인 사용일 것이다. 이러한 데이타 전송 속도와 데이타 처리 속도 간의 불일치 또는 인터페이스 문제점은 "병목 현상" 문제점을 발생시켜, 전송(일정한 데이타 전송 속도)을 위해 프로세서로부터 이용 가능한 데이타가 너무 많거나, 후속 처리(일정한 컴퓨터 처리 능력)를 위해 채널로부터 이용 가능한 데이타가 너무 적게 된다.
게다가, 프로세서가 다른 응용 기능들을 수행하는 동안, 프로세서는 또한 데이타 패킷 또는 프레임의 수신 시에 확인 신호를 송신하는 것과 같은 데이타 전송 프로토콜의 다양한 요구에 주기적 또는 연속적으로 응답할 필요가 있을 것이다. 그러므로, 범용 컴퓨터 프로세서와 인터페이싱하여 통신 채널을 통해 데이타를 송신 및 수신하며, 효율적인 데이타 전송과 효과적인 프로세서 능력의 사용 모두를 제공하는 보다 효율적인 장치 및 방법이 필요하다.
본 발명은 일반적으로 데이타 통신 장치, 특히 데이타 송신 및 수신을 위한 프로세서와 통신 채널 사이의 인터페이싱(interfacing) 방법 및 장치에 관한 것이다.
도 1은 본 발명에 따른 장치의 제1 실시예를 도시한 전체 블럭도.
도 2는 본 발명에 따른 장치의 제2 실시예를 도시한 전체 블럭도.
도 3은 본 발명에 따른 장치의 양호한 실시예를 도시한 상세 블럭도.
도 4는 본 발명에 따른 디지탈 네트워크와 인터페이싱을 위한 인터페이스 장치의 다른 실시예를 도시한 블럭도.
도 5는 모뎀 응용 소프트웨어 프로그램을 구비한 컴퓨터에 연결된 본 발명에 따른 인터페이싱 장치를 도시한 상세 블럭도.
도 6은 본 발명에 따른 수신 데이타 인터페이스 방법을 도시한 플로우 차트.
도 7은 본 발명에 따른 송신 데이타 인터페이스 방법을 도시한 플로우 차트.
상술한 바와 같이, 모뎀 소프트웨어 응용을 갖는 프로세서 모뎀의 실제 구현에서 발생할 수 있는 중요한 문제점은 컴퓨터 처리 속도 또는 주파수와 다른 데이타 전송 속도 또는 주파수에 관한 것이다. 이러한 다른 속도 또는 주파수는 이용가능한 컴퓨터 처리 능력을 효과적으로 사용 또는 최적화할 수 없게 하는 "병목 현상 형태"의 문제점을 발생시켜, 전송(일정한 데이타 전송 속도)을 위해 프로세서로부터 이용 가능한 데이타가 너무 많거나, 후속 처리(일정한 컴퓨터 처리 능력)를 위해 채널로부터 이용 가능한 데이타가 너무 적게 된다. 종래 기술에서는, 적어도 하나의 전용 프로세서(DCD 내의)가 입력 데이타를 처리하여, 제2 전용 컴퓨터 프로세서에 의한 후속 처리를 위해 DTE 내의 또는 DTE에 대해 억세스 가능한 메모리 내에 완전한 파일을 바로 생성하였기 때문에, 상기 문제점이 발생하지 않았다. 본 발명의 장치 및 방법은 하나의 프로세서가 동시에 실시간으로 2가지 기능을 수행하는 경우에 상기와 같은 비호환성 문제를 처리한다.
둘째, 하기에서 더 상세히 논의되는 바와 같이, 본 발명에 따른 인터페이스 장치 및 방법은, 동시적으로 데이타 송신 기능들 및 컴퓨터 프로세서의 다른 응용 기능들을 최적화하기 위해, 데이타 통신의 결정적인 상황들(deterministic aspects) 및 컴퓨터 처리의 보다 불확정적인 상황들을 처리하고 인터페이싱한다. 예를 들어, V.34 및 V.32 비스와 같은 데이타 전송 프로토콜들은 전형적으로 매우 결정적인 샘플링 속도 및 전송 속도와 함께 특정한 확정된 전송 속도를 필요로 하여, 송신 또는 수신된 신호의 정확한 표현을 제공한다. 유사하게, ISDN과 같은 디지탈 전송 프로토콜은 다양한 B 및 D 채널들(ISDN에 대해) 또는 DS0들(T1 또는 E1 시스템에 대해) 간의 타이밍 및 동기와 함께 특정한 결정된 전송 속도를 갖는다. 반대로, 컴퓨터 프로세서는 동시에 여러 프로그램들 또는 기능들을 동작중일 수 있고, 각각은 다른 처리 요건들을 가질 수 있어서, 프로세서는 사용자에 의해 요구되거나 지정된 주파수에서와 같은 보다 불확정적인 주파수에서 각각의 프로그램으로 주기적 작업을 수행한다.
셋째, 본 발명의 장치 및 방법은 컴퓨터가 동시에 다른 기능들을 수행하면서 데이타 전송 또는 네트워크 프로토콜 요구를 처리하도록 하는 수단을 제공한다. 넷째, 상기 장치 및 방법은 다양한 프로세서 또는 컴퓨터의 문제점들의 복구를 위한 여러 매카니즘을 제공한다. 다섯째, 하기에서 더 상세히 논의되는 바와 같이, 본 발명의 장치 및 방법은 운영 체제나 여러 프로그램들 또는 기능들의 동시 동작의 결과로서 발생할 수 있는 프로세서 응답 시간의 임의의 레이턴시(latency)를 처리하기 위한 기반을 제공한다. 예를 들어, 본 발명의 장치 및 방법은 처리를 위한 입력 데이타의 존재 및 전송을 위한 출력 데이타의 부재 양자 모두 또는 그 중 하나를 나타내도록 프로세서에 인터럽트 신호를 발생시킨다. 얼마나 신속하게 프로세서가 처리를 위한 프로세서로의 입력 데이타를 판독하고 송신을 위한 인터페이스 장치에 출력 데이타를 기입하는 판독/기입 요청과 같은 외부 장치 또는 카드로부터의 인터럽트 요청에 응답하는지 또는 응답하지 않는지에 따라, 상기 장치 및 방법은 송신에 이용 가능한 데이타의 불충분으로부터의 데이타 언더런(underruns)을 방지하고, 처리에 이용 가능한 데이타의 과도함으로부터의 데이타 오버런(overruns)를 방지하는 매카니즘을 제공한다. 끝으로, 하기에서 더 상세히 논의되는 바와 같이, 본 발명의 장치 및 방법은 동적 가변 주파수에서의 인터럽트 신호 발생이 V.32 및 V.32 비스와 같은 데이타 전송 프로토콜의 일부 동안 요구될 수 있는 고속 응답을 제공하도록 한다.
도 1을 참조하면, 도 1은 본 발명에 따른 인터페이스 장치(101)의 제1 실시예를 도시한 전체 블럭도이다. 도 1은 PowerPC®및 Pentium®프로세서와 같은 프로세서(103)를 포함하는 개인용 컴퓨터, 파일 서버, 또는 워크스테이션과 같은 DTE(102)를 도시하고 있다. 라인, 케이블, 또는 버스(104)를 통한 프로세서는 인터페이스 장치(101)에 접속되는데, 이는 데이타 송신 및 수신을 위한 통신 채널(또는 "채널")에 더 접속된다. 라인, 케이블, 또는 버스(104)는 ISA 또는 PCI 버스 또는 PCMCIA 표준 호환 슬롯과 같은 컴퓨터로의 접속에 적합한 설비의 임의의 형태일 수 있다. 인터페이스 장치(101)는 도 3 및 4를 참조로 다음에서 상세히 논의되며, 링 검출, 펄스 및 통 다이얼링, 및 아날로그-디지탈 변환과 같은 전형적인 모뎀의 기능을 수행한다. 모뎀 응용 프로그램과 같은 통신 응용 프로그램을 포함하거나 또는 그 프로그램 하에서 동작하는 프로세서(103)는 전형적으로 트레이닝(training), 균등화, 스크램블링, 엔코딩, 디코딩, 에코 제거(echo cancellation), 및 프리코딩과 같은 다른 모뎀 기능들을 전형적으로 수행한다. 통신 채널(105)로의 인터페이싱을 위한 인터페이스 장치(101)를 사용하여, 프로세서(103)는 전화 응답, 및 음성(voice or speech) 인식 또는 처리와 같은 다른 통신 응용 프로그램을 포함 또는 그 프로그램 하에서 동작할 수 있다. 만일 ISDN과 같은 디지털 통신 채널에 접속되었다면, 프로세서(103)는 ISDN 단말 어댑터에 대한 것과 같은 다른 통신 응용 프로그램들을 포함하거나 이들 하에서 동작될 수 있다.
도 2는 본 발명에 따른 인터페이스 장치(101)의 제2 실시예를 도시하고 있다. 도 2에 도시된 바와 같이, 본 발명에 따른 인터페이스 장치(101)는 DTE(102) 내에 포함되어 있다. 예를 들어, 인터페이스 장치(101)는 회로 보드, ISA 카드, PCMCIA 카드, 또는 집적 회로로서 구현될 수 있다. 도 1에서와 같이, 인터페이스 장치(101)는 또한 ISA 버스, PCI 버스, 또는 PCMCIA 슬롯과 같은 임의의 적절한 설비를 사용하여 DTE(102)의 프로세서(103)에 접속 또는 연결된다. 계속해서 도 2를 참조하면, 인터페이스 장치(101)는 또한 데이타 송신 및 수신을 위한 통신 채널(105)에 더 접속된다. 도 1과 유사하게, 인터페이스 장치(101)(또한 도 3 및 4를 참조로 다음에서 상세히 논의됨)는 링 검출, 펄스 및 톤 다이얼링, 및 아날로그-디지탈 변환과 같은 전형적인 모뎀 기능을 수행한다. 유리하게, 모뎀 응용 프로그램과 같은 통신 응용 프로그램을 포함하거나 또는 그 프로그램 하에서 동작하는 프로세서(103)는 정형적으로 트레이닝, 균등화, 스크램블링, 엔코딩, 디코딩, 에코 제거, 및 프리코딩과 같은 다른 모뎀 기능들을 수행한다.
도 3은 본 발명에 따른 인터페이스 장치(101)의 양호한 실시예를 도시한 상세 블럭도이다. 도 3에 도시된 바와 같이, 인터페이스 장치(101)는 ISA 또는 PCI 버스와 같은 버스(107)를 통해 컴퓨터와 같은 DTE(102) 내에 연결 또는 접속되고, 데이타 송신 및 수신을 위한 통신 채널(105)에 연결된다. 인터페이스 장치(101) 내에서, 채널 인터페이스 회로(106)는 PSTN과 같은 채널(105) 상으로 송신된 데이타 신호를 수신한다. 채널 인터페이스 회로(106)는 예를 들어, "DAA"로서 공지되어 있는 다이얼(또는 데이타) 설비일 수 있는데, 이는 종래 기술에서 공지되어 있으며 아날로그 멀티플렉서, 저항기, 커패시터, 하이브리드 회로, 및 연산 증폭기를 포함하는 다양한 이산 소자로 이루어질 수 있거나, 집적 회로의 전체 또는 일부로 구현될 수 있고, 임피던스 정합, 파워 레벨 조정, 및 4 - 2 와이어 접속을 인터컨버팅하는 것과 같은 기능들을 수행한다. 채널 인터페이스 회로(106)에 대한 DAA의 사용은 전화선과 같은 아날로그 선으로의 접속에 적합할 것이며, 이 경우에, 채널 상으로 송신되고 채널로부터 수신되는 데이타 신호는 아날로그 신호일 수 있다. 도 4를 참조로 논의된 바와 같이, 채널 인터페이스 회로(106)는 또한 ISDN과 같은 디지탈 서비스로의 접속에 사용되는 S/T 인터페이스 및 U 인터페이스를 포함하는 디지탈 회선 또는 채널로의 접속에 적합한 디지탈 인터페이스 회로와 같은 다른 장치일 수 있는데, 이는 디지탈 데이타 포맷팅과 같은 기능을 수행한다. 이 경우에, 채널 상에서 송신되고 채널로부터 수신되는 데이타는 디지탈 신호일 것이다.
채널(105)을 통한 아날로그 신호의 송신을 위해, 전형적으로 코더-디코더("코덱")(108) 또는 등가적으로, 본 명세서에서 아날로그-디지탈("A/D") 변환기(SGS Thompson ST 7544 또는 ST 7545 등)로 언급되는, 아날로그-디지탈 및 디지탈-아날로그 변환기이다. 코덱(또는 A/D 변환기)(108)은 디지탈 형태로 채널(105)(채널 인터페이스 회로(106)를 통해)로부터 수신된 데이타 신호(아날로그 신호 등)를 샘플링하고 변환하며, 디지탈 정보를 채널(105)을 통한 송신을 위해 데이타 신호(아날로그 신호 등)로 변환한다. 본 발명의 A/D 변환기 및 코덱의 교환성 또는 등가성 때문에, 코덱과 A/D 변환기 중 하나를 언급하는 것은 다른 것들도 의미하며 포함하고 있다는 것을 이해하여야 한다. ISDN 또는 다른 디지탈 환경에서, ISDN을위한 채널 인터페이스 회로(106)는 디지탈 데이타를 직접 수용할 수 있기 때문에, A/D 변환기 또는 코덱(108), 및 인터페이스 회로(101)의 다른 부분들은 전형적으로 요구되지 않는다. 게다가, 모토롤라 MC68302 집적 멀티프로토콜 프로세서와 같은 프로세서(103)는 전형적으로 병렬 프로세서 포맷팅 데이타를 채널(105)을 통한 송신을 위해 직렬 데이타로 변환시키는 직렬 통신 제어기를 포함하는데, 이러한 경우에, 다음에서 논의되는 바와 같이, 송신 샘플 FIFO(114) 및 수신 샘플 FIFO(116)와 같은 메모리(115)와 함께, 버스(107) 및 인터페이스(120)의 부분들은 프로세서(103) 내에 포함될 수 있다.
도 3을 계속해서 참조하면, 인터페이스 장치(101)는 양호한 실시예에서 훅 FIFO(선입, 선출)(110), 링 FIFO(112), 송신 샘플 FIFO(114), 및 수신 샘플 FIFO(116)로 나타낸 메모리(115)를 포함한다. 메모리(115)는 랜덤 억세스 메모리와 같은 임의의 형태로 구현될 수 있고, 단지 설명의 편의를 위해 도 3에서 독립적인 FIFO들을 갖는 것으로 도시되어 있다. 게다가, 메모리가 디지탈 데이타의 시퀀스의 형태와 같은 순서 또는 순차적인 방식으로 저장된 데이타를 유지하는 능력을 갖는다면, 메모리는 선입 선출 메모리가 아닌 다른 포맷을 가질 수 있다. 메모리의 링 FIFO(112)는 또한 채널 인터페이스(106)에 연결되어 있는 1 비트 양자화기(118)에 연결되며, 훅 FIFO는 채널 인터페이스 회로(106)에 직접 접속된다. 송신 샘플 FIFO(114) 및 수신 샘플 FIFO(116)는 또한 코덱(또는 A/D 변환기)(108)에 연결된다. 각각의 FIFO 메모리 회로들은 DTE(102) 내의 적절한 기능을 위해, 전형적으로 어드레스 선택을 위한 형태, 라인 또는 접속(122), IRQ 선택을 위한 행태, 라인 또는 접속(124)을 포함하거나, 대안적으로 "플러그 앤드 플레이"형태의 칩 또는 이와 같은 다른 집적 회로를 포함할 수 있는 ISA, PCI 또는 PCMCIA 인터페이스와 같은 전기기계적(또는 광학적) 인터페이스(120)에 접속된다. ISA 인터페이스, PCI 인터페이스, 또는 PCMCIA 인터페이스와 같은 전기기계적 인터페이스(120)는 도 1 및 2의 DTE(102) 내의 프로세서(103)와 같은 프로세서로의 접속을 위해, 대응하는 ISA, PCI, 또는 PCMCIA 버스와 같은 버스(107)에 접속된다. 각각의 FIFO 메모리 회로는 또한 상태 모니터링을 위해 상태 라인(또는 버스)(126)을 통해 기능 블럭(138)에 연결된다. 기능 블럭(138)은 클럭 신호 발생기(클럭 또는 클러킹 또는 타이밍 회로로도 칭함)(134), 인터럽트 발생기(128), 및 상태 검출기(136)를 포함한다. 이러한 다양한 클럭, 인터럽트, 및 상태 특성은 또한 개별 또는 통합 소자로서 구현될 수도 있으며, 다른 기능 블럭들 내에 결합될 수 있으나, 설명의 편의를 위해 기능 블럭(138) 내에 포함되어 있다. 기능 블럭(138) 내에 포함되는, 클럭 신호 발생기(134), 인터럽트 발생기(128), 및 상태 검출기(136)는 또한 라인(132)을 통해 코덱(또는 A/D 변환기)(108)에 연결되고, 라인(130)을 통해 채널 인터페이스 회로(106)에 연결되며, 라인(또는 버스)(140)을 통해 전기기계적 인터페이스(120)에 연결된다.
클럭 신호 발생기(또는 클럭)(134)는 또한 프로세서(103) 내에 포함될 수 있다. 클럭 신호 발생기(134)는 코덱(또는 A/D 변환기(108))을 위한 안정된 클럭 신호를 발생하여, 코덱(또는 A/D 변환기)(108)은 규칙적으로, 일정하게, 확정적으로, 또는 제1 주파수 또는 확정 주파수로서 언급되는 소정의 간격으로 유입 데이타를샘플링할 수 있어, 디지탈 값들의 연속적인 스트림으로 구성된 수신 신호의 정확한 디지탈 표현을 얻고, 또한 디지탈 값들의 연속적인 스트림으로부터 송신을 위해 출력 데이타 신호(아날로그 신호 등)를 정확하게 형성시킨다.
도 3을 계속 참조하면, 인터페이스 장치(101)는, 채널 인터페이스 회로(106)를 통해 입력되는 입력 신호(데이타 신호 등)를 수신하는데, 이 데이터는 제1 또는 일정한 주파수로 코덱(또는 A/D 변환기)(108)에 의해 디지탈 형태로 샘플링되고 변환되며, 또한 디지탈 데이타로부터 코덱(또는 A/D 변환기)(108)에 의해 생성된 출력 신호(데이타 신호 등)를 제1 또는 일정한 주파수로 채널(105) 상으로 송신하는 기능을 한다. 수신 신호의 디지탈 샘플들은 수신 샘플 FIFO(116)로 전송되어 저장된다. 상태 라인(또는 버스)(126)을 통해 상태 검출기(136)에 의해 모니터링됨에 따라, 샘플들의 충분한 또는 소정의 수가 수신 샘플 FIFO(116)에 전송되어 저장될 때, 인터럽트 발생기(128)는 인터럽트 신호(또는 제1 인터럽트 신호)를 프로세서(103)에 발생시키는데, 이는 인터페이스(또는 전기기계적 인터페이스)(120) 및 버스(107)를 통해 송신된다. 제1 인터럽트 신호, 또는 임의의 다른 등가 신호는 프로세서가 소정의 시간 주기 내에 수신 샘플 FIFO(116) 내에 유지된 샘플들을 프로세서 메모리로 판독하는 통신 응용 프로그램 및/또는 운영 체제 내에 프로그래밍되거나 포함된 바대로, 프로세서(103)에 대한 지시를 제공한다. 제1 인터럽트 신호에 응답하여, 프로세서(103)는 제1 인터럽트 신호를 확인하고, 샘플들을 수신 샘플 FIFO(116)로부터 프로세서 메모리로 판독하도록 프로그래밍된다. 다음에, 수신 샘플 FIFO(116)는 비워지고, 코덱(또는 A/D 변환기)(108)으로부터의 새로운 출력 데이타로 다시 채워질 수 있다. 만일 메모리가 FIFO가 아닌 다른 형태로 구현된다면, 메모리 내에 저장된 정보는 기입될 수 있거나 그렇지 않으면 새로운 출력 데이타로 개정될 수 있다.
이와 동시에, 동일한 인터럽트 싸이클 동안(즉, 동일한 제1 인터럽트 신호에 응답하여), 프로세서(103)는 인터페이스(120)를 통해 송신되는 디지탈 데이타를 송신 샘플 FIFO(114)로 기입할 수 있다. 프로세서로부터의 디지탈 데이타는 데이타 송신을 위한 제1 또는 일정한 주파수에서 코덱(또는 A/D 변환기)(108)에 의한 출력 데이타 신호로의 변환을 위해 송신 샘플 FIFO(114) 내에 저장된다. 코덱(또는 A/D 변환기)(108)이 송신 샘플 FIFO 내에 저장된 디지탈 데이타로부터 출력 데이타 신호를 생성하면, 송신 샘플 FIFO는 비워지고, 프로세서(103)에 의한 다음 인터럽트 싸이클 동안 다시 채워질 수 있다. 대안적으로, 디지탈 데이타의 기입 및 저장과 출력 데이타 신호의 형성 단계들의 시퀀스는 제1 인터럽트 신호와 동일한 형태 또는 동일시될 수 있거나 또는 동일시될 수 -4+없는 제2 인터럽트 신호에 응답할 수 있다. 예를 들어, 다양한 실시예들에서, 데이타 수신 처리로부터 분리 및 독립적으로 데이타 송신 처리를 제어하는 것이 바람직할 것이며, 이 경우에 제2 인터럽트 신호는 제1 인터럽트 신호와 몇가지 방식으로 구별 가능하여야 한다.
양호한 실시예에서, 데이타 송신 및 수신에 선행하는 트레이닝 상태 또는 트레이닝 과정의 레인징 부분을 위해, 송신 샘플 FIFO(114) 및 수신 샘플 FIFO(116)는 각각 2400 Hz의 V.32 비스 심볼 레이트, 심볼 당 3개의 샘플을 위한 7200 Hz의 샘플링 클럭을 기초로 하여 결정된 적어도 18개의 샘플을 인터럽트(또는 인터럽트싸이클) 당 6개의 심볼 레이트로 저장하는 용량을 구비하여, 인터럽트 당 18개의 샘플을 발생한다. 이러한 다양한 파라미터들 각각은 심볼 레이트, 샘플링 레이트, 소망의 데이타 전송 프로토콜 또는 표준(V.32, V.32 비스, 또는 V.34 등), 임의의 소망의 인터럽트 레이트, 및 임의의 소망의 구현(ASIC 등)에 따라 수정될 수 있다. 게다가, 메모리 저장 용량은 잠재적인 데이타 오버런 및 데이타 언더런 컨디션에 대해 원하는 보호의 수준에 따라 증가되거나 감소될 수 있다. 예를 들어, 인터럽트 신호들 간의 보다 긴 간격은 데이타 오버런 및 언더런 컨디션을 회피하기 위해 18개의 샘플보다 큰 용량을 갖는 송신 및 수신 메모리 회로를 필요로 한다. 양호한 실시예에서, 정상 상태 데이타 송신을 위해, 송신 샘플 FIFO(114) 및 수신 샘플 FIFO(116)는 각각 적어도 90개의 샘플 및 256개의 샘플을 저장하는 용량을 갖게 되어, 데이타 오버런을 방지(만일 프로세서가 인터럽트 신호에 충분히 신속하게 응답하지 않고 출력 데이타가 축적을 계속한다면)하고 데이타 언더런을 방지(만일 프로세서가 인터럽트 신호에 충분히 신속하게 응답하지 않고 출력 데이타가 비워진다면)하도록 80 Hz의 인터럽트 레이트를 발생한다.
또한, 본 발명의 양호한 실시예는, 인터럽트 신호의 발생을 위한 동적 가변 주파수(또는 레이트)와, 동적 가변 메모리 용량을 위해, 예를 들어, 18 내지 256 개의 샘플을 유지하는 용량 사이에서 가변적인 용량을 각각 갖는 송신 샘플 FIFO(114) 및 수신 샘플 FIFO(116)을 제공한다. 경험적인 연구 및 시뮬레이션은, 프로세서(103)의 유효성에 대한 동시적인 요구를 발생하는, 비디오 및 사운드 재생과 같은 다른 실시간 응용들의 멀티태스킹 환경에서, 인터럽트 레이턴시는 예를 들어, Pentium®급 프로세서에서 현저하게 증가할 수 있으며, 이는 5 - 7 msec 정도일 수 있음을 나타내었다. 이러한 환경에서 동시 동작을 위해, 프로세서(103) 내에 구현된 소프트웨어 모뎀(또는 다른 데이타 통신 장치)은 레이턴시 지연을 스팬(span)하도록 충분히 장 기간의 기간을 갖는 인터럽트 주파수를 사용해야 한다. 그러나, 느린 인터럽트 주파수에서는, 예를 들어, 원단 에코 연산(far end echo calculations) 및 이퀄라이져 트레이닝(equalizer training) 동안 2 - 5 msec 내의 핸드세이킹 응답을 필요로 하는 V.32, V.32 비스, 및 V.34와 같은 다양한 변조 모드들의 초기 트레이닝 페이즈 동안에 적절한 응답을 위한 타이밍 레졸루션(resolution)이 불충분하게 될 수 있다. 따라서, 양호한 실시예에서, 인터럽트 신호의 발생 주파수는 제1 주파수와 제2 주파수 사이의 범위에서 동적으로 변화한다. 상세히, 초기 트레이닝 페이즈 부분 동안에, 인터럽트 주파수(또는 레이트)는 데이타 전송 모드(또는 데이타 모드)를 위한 초기 저속 레이트와 같은 제1 주파수로부터 정상 상태 데이타 모드를 위한 저 레이트와 같은 제1 주파수로 재변화하는 인터럽트 주파수가 후속하는 트레이닝 페이즈 부분을 위한 일시적인 고속 레이트와 같은 제2 주파수로 동적으로 변화한다. 양호한 실시예에서, 만일 임의의 리트레이닝이 지시된다면, 인터럽트 레이트는 리트레이닝 상태 또는 과정의 적절한 부분을 위해 다시 동적으로 고속 레이트인 제2 주파수로 변화할 것이다.
저속으로부터 고속으로 및 고속으로부터 저속으로와 같은 제1 및 제2 인터럽트 주파수 간의 상기와 같은 천이(transition) 동안, 메모리(115)의 용량(FIFO 크기 또는 송신 FIFO(114) 및 수신 FIFO(116)의 용량 등)은 또한 데이타 언더런 또는 오버런 컨디션을 회피하기 위해 동적으로 변화하여야 한다. 예를 들어, 정상 상태 데이타 송신 모드와 같은 저속 인터럽트 레이트를 갖는 모드 동안, 송신 FIFO(114)는 송신에 이용 가능한 충분한 데이타를 보유할 만큼 충분히 커야 하며, 수신 FIFO(116)는 인터럽트 레이턴시에 포함된 임의의 시간 주기를 포함하는 인터럽트 신호들 간의 기간 동안에, 입력 데이타를 수신하기에 충분한 용량을 가져야 한다. 그 결과, 저속으로부터 고속으로의 인터럽트 레이트의 천이 시에, 송신 FIFO(114)는 아직 일정한 레이트로 송신되지 않은 송신을 위한 데이타를 여전히 포함하고, 수신 FIFO(116)는 일정하지 않은 레이트에서 (프로세서(103)에 의해) 아직 판독되지 않은 수신 데이타를 여전히 포함한다. 이 시간 동안, 송신을 위한 새로운 데이타는, 각각 프로세서(103)에 의한 일정한 레이트에서의 송신 및 판독을 통해, 드레인 다운(drain down)"되고 단지 고속 인터럽트 레이트에서 각각 송신 또는 수신될 수 있는 데이타 량을 포함할 때까지 송신 FIFO(114)에 추가되지 않거나 수신 FIFO(116)에 의해 수신되지 않아야 한다. 이는 프로세서(103) 내에서 동작하는 소프트웨어 프로그램의 송신부를 디스에이블링(disabling)함으로써 이루어질 수 있으며, 송신 FIFO(114)가 고속 인터럽트 레이트에서의 송신에 충분한 데이타를 포함하고 있을 때만 리인에이블링(re-enabling)이 뒤따른다. 프로세서(103)는 고속 인터럽트 레이트로도 수신 FIFO(116) 내에 유지된 모든 데이타를 판독할 능력을 가질 수 있기 때문에, 데이타 수신을 위한 인터럽트 주파수의 천이를 위한 추가 단계들이 요구되지 않으며 데이타 수신은 변경되거나 인터럽트될 필요가 없게 되는 것이가능해진다.
고속 인터럽트 주파수로부터 저속 정상 상태 인터럽트 주파수로의 천이에도 유사한 고려가 적용될 수 있다. 저속 레이트에서는, 네트워크 접속의 잠재적인 손실을 가지는 데이터 언더런을 회피하기 위해, 다음(저속 레이트) 인터럽트 신호에서 송신에 이용 가능한 송신 FIFO(114) 내의 데이타가 존재할 수 있도록, 추가 데이타가 송신 FIFO(114)를 채우는 것이 필요하다. 따라서, 이러한 천이에서, 송신 FIFO(114)는 추가 데이타로 "채워진다(padding)", 예를 들어, 송신 FIFO(114)가 송신될 다음 순서의 샘플로 미리 채워진다. 수신 FIFO(116)는 입력 데이타가 도착함에 따라 자동적으로 채워지거나 또는 채워져야 한다.
게다가, 양호한 실시예에서, 이러한 다양한 FIFO들의 용량의 천이와 인터럽트 주파수의 변화는 또한 트레이닝 과정 동안에 이루어진 경험적인 결정에 잠재적으로 강한 영향을 줄 수 있다. 예를 들어, 얼마나 신속하게 다양한 신호들이 검출되고 프로세서에 의해 응답되는가에 따라, 인터럽트 신호의 가변 레이트가 제공되어, 또다른 모뎀과 같은 원격지에서의 송신 장치는 그 이퀄라이져를 위한 원단 에코 연산에 사용되는 라운드 트립 지연(round trip delay)을 위한 잘못된 연산을 추론할 수 있다. 그 결과, 양호한 실시에에서, 이퀄라이져 트레이닝 동안에, 다른 트레이닝 과정을 위한 고속 레이트보다는 저속 정상 상태 인터럽트 레이트가 사용될 수 있다. 유사한 고려가 가변 FIFO 크기로 인해 프로세서(103)에 의해 수행되는 근단 에코 연산에도 적용될 수 있다. 그 결과, 크거나 작은 FIFO 용량에 의해 발생된 가능한 지연이 또한 측정되고, 경험적으로 결정되거나, 이퀄라이져 트레이닝 동안 이루어진 연산 시에 다른 방법이 고려될 수 있다.
동적으로 변하는 메모리 용량 및 동적으로 변하는 인터럽트 주파수들은 또한 ISDN 또는 다른 디지탈 네트워크 환경에도 적용 가능하다. 예를 들어, 이러한 가변 메모리 용량 및 가변 인터럽트 주파수는 디지탈 통신 네트워크에 전형적으로 사용되는 "핸드세이킹" 또는 다른 초기화 과정 또는 모드에 바람직할 수 있다.
본 발명의 양호한 실시예는 또한 다양한 보호 수단(safeguard) 또는 복구 매카니즘을 포함하여 데이타 송신 또는 수신을 위해 프로세서(프로세서(103)과 같은) 또는 컴퓨터(DTE(102)와 같은)의 사용으로 인해 발생할 수 있는 상황 또는 문제점을 방지한다. 예를 들어, 때때로 컴퓨터 내의 다양한 프로그램들이 서로 방해하여, 통신 시스템 고장을 발생시키거나, 컴퓨터가 일반적인 보호 장해, "폭주" 또는 정지를 일으켜, 운영 체제의 재설정 또는 재부팅을 필요로 할 수 있다(본 명세서에 사용된 바와 같이, "통신 시스템"은 인터페이스 장치(101)와 함께 통신 프로그램 또는 다른 통신 소프트웨어로 또는 그 프로그램 하에서 동작하는 프로세서(103)(또는 DTE(102))의 조합이며, 전체 컴퓨터 또는 프로세서 시스템의 일부 또는 서브셋으로 고려될 수 있다). 이와 같은 임의의 통신 시스템 고장 또는 다른 "대변동(catastrophic)" 발생의 경우에, 양호한 실시에에서는, 상태 검출기(136)가 상태 라인(126)을 통해 송신 샘플 FIFO(114) 및 수신 샘플 FIFO(116)의 상태를 감시하여 프로세서(103)가 인터럽트 신호에 응답하고 수신 샘플 FIFO(116)로부터 판독하였는지 및/또는 소정의 시간 주기 내에 송신 샘플 FIFO(114)로 기입되었는지를 판정한다. 만일 상태 검출기(136)가 3초 동안과 같은, 소정의 시간 동안 임의의동작이 없었다는 것으로 판정하거나 검출하였다면, 상태 검출기(136)는 통신 시스템 고장이 발생하였다고 판정하고 라인(130) 상에서 상태 신호를 채널 인터페이스 회로(106)로 발생시키는데, 상기 상태 신호는 채널 인터페이스 회로(106)가 라인에서 떨어지고 통신을 종료하여, 예를 들어, 릴레이가 개방, 훅 상태 계속, 및 라인 또는 호에서 떨어지도록 하는 것을 나타낸다.
또한, 양호한 실시예에서는, 상태 라인을 사용하여, 상태 검출기(136)는 또한 데이타 오버런 컨디션이 수신 샘플 FIFO(116) 내에 존재하는지와 데이타 언더런 컨디션이 송신 샘플 FIFO(114) 내에 존재하는지를 판정한다. 만일 상기와 같은 데이타 언더런 컨디션, 데이타 오버런 컨디션, 또는 다른 데이타 에러 컨디션(개별 및 집합적으로 "데이타 용량 컨디션"으로서 칭함)이 존재한다면, 또는 만일 상기와 같은 데이타 용량 컨디션이 소정의 시간 기간 동안 지속하거나 소정의 임계치를 초과한다면, 상태 검출기(136)는 에러 컨디션을 나타내는 상태 신호를 발생시켜, 수신 샘플 FIFO(116) 및 송신 샘플 FIFO(114)를 리세팅시키고 통신 시스템을 리트레이닝(retraining)시킨다(예를 들어, 통신 시스템은 모뎀 응용 프로그램과 같은 통신 프로그램을 갖는 DTE(102)와 함께 동작하는 인터페이스 장치(101)임). 이러한 통신 시스템의 리세팅 및 리트레이닝은 예를 들어, 언더런 컨디션 하의 적절한 시퀀스 및 동기 손실 또는 데이타 오버런 컨디션 하의 잠재적인 손실로 인해 코히어런스 변조 프로세스를 사용할 때 필요할 수 있다. 양호한 실시예에서, 상태 검출기(136)는 리세팅 및 리트레이닝을 통해 통신 손실과, 통신 라인의 끊어짐이 없게 한다.
계속해서 도 3을 참조하면, 링 FIFO(112) 및 1 비트 양자화기(118)가 데이타 수신을 위해 입력 링 신호의 검출에 사용된다. 전형적인 링 신호는 주파수 예를 들어, 특정한 케이던스(cadence)(온 및 오프 시퀀스)를 갖는 20 내지 60 Hz일 수 있다. 입력 링 신호에 대해, 1 비트 양자화기(118)는 양호한 실시예에서 1kHz의 레이트로 신호를 샘플링하여, 만일 양호한 실시예에서 입력 데이타가 30V와 같은 소정의 임계치보다 큰 값을 갖는다면 디지탈 1을 생성하고, 만일 입력 데이타가 소정의 임계치보다 작거다 또는 소정의 임계치와 동일한 값을 갖는다면 디지탈 0을 생성한다. 1 비트 양자화기(118)는 비트 스트림을 생성하는데, 이는 메모리(115)의 링 FIFO(112)부로 전송되어 저장된다. 양호한 실시예에서, 링 FIFO(112)는 32 msec의 정보를 저장하기 위해 32 비트의 용량을 갖는다. 링 FIFO(112)가 32 비트와 같은 소정의 용량에 도달하였을 때, 상태 신호는 상태 라인(126)을 통해 링 FIFO(112)로부터 인터럽트 발생기(128)로 발생된다. 대안적으로, 상태 검출기(136)는 매 10 msec 마다와 같은 소정의 간격에서 링 FIFO(112)의 상태를 다른 방법으로 모니터링하여, 링 FIFO(112)가 소정의 용량에 도달하였는지를 판정한다. 링 FIFO(112)가 소정의 용량에 도달하였을 때, 상태 신호나 다른 상태 검출이나 모니터링에 의해 판정된 대로, 인터럽트 발생기(128)가 인터페이스를 통해 프로세서(103)로 송신되는 인터럽트 신호(및/또는 제2 인터럽트 신호)를 발생시킨다. 인터럽트 신호는 제1 인터럽트 신호(및/또는 제2 인터럽트 신호)와 상이하거나, 동일하거나, 유사할 수 있다. 따라서, 소망의 구현에 따라, 링 FIFO(112)의 상태를 나타내는 인터럽트 신호는 제1, 제2, 또는 제3 인터럽트 신호로 언급될 수 있다.다음에, 모뎀 또는 다른 통신 응용 소프트웨어를 사용하여, 프로세서(103)는 유효 입력 링 신호를 검출하도록 비트 스트림을 처리한다. 예를 들어, 유효 입력 링 신호는 특정한 케이던스 및 유효 입력 링 신호의 전압을 나타내는 특정한 디지탈 1의 시퀀스와, 후속 디지탈 0의 시퀀스를 가져야 한다.
출력 다이얼링(outgoing dialing)에 대해, 인터페이스 장치(101)는 2중 톤 다중주파수("DTMF") 또는 펄스 다이얼링을 사용할 수 있다. DTMF를 위해, 다이얼링은 코덱 또는 A/D 변환기(108)에 의해 출력 신호(출력 아날로그 신호 등)로 처리하기 위해 프로세서(103)로부터의 적절한 디지탈 다이얼링 정보를 송신 샘플 FIFO(114)로 송신함으로써 이루어질 수 있다. 양호한 실시예에서, 펄스 다이얼링은 프로세서(103)로부터의 적절한 디지탈 정보를 훅 FIFO(110)로 송신함으로써 이루어지는데, 상기 정보는 훅 상태 헤제(go off hook)를 나타내고 적절한 펄스 다이얼링 시퀀스를 포함한다. 예를 들어, 특별히 미리 정의한 디지탈 1 및 0의 비트 스트림은 채널 인터페이스 회로(106) 내의 적절한 릴레이를 개방 및 폐쇄시킴으로써 훅 상태 해제를 나타낸다. 펄스 다이얼링은 소망의 다이얼링 케이던스, 예를 들어, 3 온 훅/오프 훅 시퀀스들과, 후속 2 온 훅/오프 훅 시퀀스들을 나타내도록 미리 정의한 비트의 특정한 시퀀스를 송신함으로써 이루어진다. 전형적인 펄스 다이얼링에서, 릴레이는 통상적으로 폐쇄되어 있어, 고 전압(논리 1) 상태이다. 양호한 실시예에서, 훅 FIFO(110)는 디폴트(default)로 개방되며, 만일 프로세서가 32 msec 이상 동안 훅 FIFO(110)로 데이타를 기입하지 않았다면, 호를 차단하고, 채널(105) 상의 채터링(chattering)을 방지한다.
계속해서 도 3을 참조하면, 소망의 구현에 따라, 전기기계적 인터페이스(120)가 호스트 프로세서 또는 컴퓨터로의 적절한 인터페이싱을 위해 전형적으로 IRQ 선택 라인 또는 IRQ 선택기(124) 및 어드레스 선택 라인 또는 어드레스 선택기(122)를 포함할 것이다. IRQ 선택 라인 또는 IRQ 선택기(124)는 프로세서 또는 컴퓨터로의 유일한 인터럽트 라인을 제공하여, 다른 카드 또는 보드와의 잠재적인 충돌을 방지한다. 어드레스 선택기(122) 및 IRQ 선택기(124)는 전형적으로 카드 또는 보드 인터페이스 상의 스위치들을 통해 이루어진다. 등가적으로, 이러한 형태는 "플러그 앤 플레이" 칩과 같은 현재 공지되어 있는 집적 회로를 통해 구현될 수 있다.
도 4는 본 발명에 따른, 디지탈 네트워크와의 인터페이싱을 위한 인터페이스 장치의 다른 실시예를 도시한 블럭도이다. PSTN과 같은 아날로그 네트워크와의 인터페이싱을 위한 채널 인터페이스 회로(106)(DAA 등)를 구비하기 보다 상기 논의된 인터페이스 장치(101)로 가상적 및 동등하게 기능하는, 도 4의 인터페이스 장치(150)는 ISDN과 같은 디지탈 채널 상에 디지탈 형태로 데이타를 송신하기 위해 S/T 인터페이스 또는 U 인터페이스와 같은 디지탈 인터페이스 회로(140)를 포함한다. 이러한 방식으로, 본 발명의 인터페이스 장치는 또한 아날로그 또는 디지탈 모뎀 으로서 동작하거나 전화 응답기로서 동작하는 것과 같은 아날로그 채널을 통한 통신 기능에 추가하여, 디지탈 채널을 통해 ISDN 단말기 어댑터로서 동작하거나 다른 통신 기능을 수행할 수도 있다. 따라서, 본 명세서에 사용된 바와 같이, 채널 인터페이스 회로(106)는 그 범위 내에서 S/T 또는 U 인터페이스와 같은 디지탈인터페이스 장치(디지탈 채널로의 접속을 위한)나, DAA와 같은 아날로그 인터페이스 장치 등과 같은 다양한 아날로그 또는 디지탈 실시예 또는 대응부를 의미하고 칭하며, 포함한다는 것을 이해하여야 한다. 상술한 바와 같이, 디지탈 환경에서, 도 3에 도시된 바와 같은 코덱(108)의 아날로그 샘플링 및 디지탈 변환 기능은 불필요하며, 따라서, 코덱 등은 도 4에 도시되어 있지 않다. 오히려, 프로세서(103)와 함께, 디지탈 인터페이스 회로(140)는 임의의 필수적인 디지탈 프레이밍(framing), 시그널링(signalling), 및 다른 디지탈 전송 기능을 수행한다.
도 5는 본 발명에 따라, 인터페이스 장치(101)의 동작에 대응하는 컴퓨터 또는 프로세서 동작을 설명할 목적으로, 모뎀 또는 블럭(210) 내의 다른 통신 응용 소프트웨어 프로그램을 구비한 컴퓨터(200)에 연결되어 있는 인터페이스 장치(101)를 도시한 상세 블럭도이다. 모뎀 또는 다른 통신 응용 소프트웨어 블록(210)은 송신용 데이타가 손신에 필요하다는 것을 나타내는 인터럽트 신호에 응답하여 데이타 인 라인(211) 상에서 메모리 내의 파일로부터의 디지탈 데이타를 수신하고, 프리코딩, 데이타 압축, 필터링, 보간(interpolating), 스크램블링, 및 엔코딩과 같은 다양한 모뎀 또는 통신 기능을 수행하여, 디지탈 데이타를 코덱 또는 A/D 변환기(108) 및 채널 인터페이스 회로(106)에 의한 또는 디지탈 인터페이스 회로(140)에 의한 임의의 부가적인 처리에 적합한 형태를 갖도록 처리된 디지탈 데이타로 변환시킨다. 이렇게 처리된 디지탈 데이타는 출력 버퍼(215)로 송신된다. 양호한 실시에에서, 트레이닝 과정의 레인징부 동안 모뎀 소프트웨어로서 동작하는 소프트웨어 블럭(210)은 정보의 6개의 심볼들을 처리하며 출력 버퍼(215)는 또한 18개의샘플들을 저장하고, 정상 상태 데이타 전송 동안에, 30개 부호들의 정보를 처리하며, 출력 버퍼(215)는 대응적으로 또한 90개의 샘플들을 저장한다. 다음에, 소프트웨어 입력/출력 구동기(220)는 송신 샘플 FIFO(114) 내의 저장과 코덱(또는 A/D 변환기)(108)(또는 디지탈 인터페이스 회로(140))의 처리와 채널(105) 상의 송신을 위해 처리된 디지탈 데이타를 인터페이스 장치(101)의 버스(107)에 전송한다.
유사하게, 수신 FIFO(116)로부터 수신되고 샘플링된 디지탈 데이타는 입력 데이타가 처리에 이용 가능한지를 나타내는 인터럽트 신호에 응답하여 컴퓨터(200)(또는 프로세서(103))에 의해 또한 처리될 수 있다. 소프트웨어 입력/출력 구동기(220)는 수신 샘플 FIFO(116)로부터 수신되고 샘플링된 데이타를 획득하고, 소프트웨어 블럭(210)에 의한 처리를 위해 입력 버퍼(225) 내에 처리를 위해 수신되고 샘플링된 데이타를 저장한다. 양호한 실시예에서, 입력 버퍼(225)는 또한 18 내지 90개의 샘플들을 저장하는 용량을 갖는다. 모뎀 소프트웨어로서 동작하는 소프트웨어 블럭(210)은 에코 제거, 타미밍 및 반송 주파수 오프셋 균등화, 다른 채널 균등화, 필터링, 복조, 디코딩 및 디스크램블링과 같이 수신 샘플들 상에서 다양한 모뎀 기능들을 수행하여, 데이타 아웃 라인(212) 상의 디지탈 데이타 출력을 메모리 내에 파일로 생성한다. 소프트웨어 블럭(210)은 또한 데이타 압축 및 에러 정정을 위한 V.42, V.42 비스, 비디오 또는 멀티미디어 프로토콜 능력을 포함할 수 있다.
계속해서 도 5를 참조하면, 링 검출 및 펄스 다이얼링 과정이 소프트웨어 블럭(210)에 의해 대응적으로 수행될 수 있다. 링 FIFO(112)로부터, 소프트웨어 입력/출력 구동기(222)가 링 FIFO(112)로부터 샘플링된 데이타를 획득하여, 소프트웨어 블럭(210)에 의한 처리를 위해 링 검출 버퍼(230) 내에 데이타를 저장한다. 펄스 다이얼링을 위한 데이타는 소프트웨어 입력/출력 구동기(220)에 의한 훅 FIFO(110)로의 전송을 위해 소프트웨어 블럭(210)으로부터 펄스 다이얼링 버퍼(235)로 전송된다.
요약하면, 도 3 내지 5는 데이타 송신 및 수신을 위한 프로세서(103)와 통신 채널(105) 사이의 인터페이싱 장치를 도시하고 있으며, 프로세서(103)는 모뎀 또는 단말기 어댑터 응용 프로그램과 같은 통신 응용 프로그램을 갖는 데이타 단말기 장치(102)로 동작 가능하다. 인터페이스 장치(101)는 첫째, 데이타 신호를 입력 데이타 신호로부터 수신하고 데이타 신호를 출력 데이타 신호로부터 송신하기 위해 통신 채널(105)에 연결 가능한 채널 인터페이스 회로(106); 둘째, 복수의 시퀀스들의 디지탈 데이타를 저장하도록 상기 채널 인터페이스 회로(106)에 연결된 메모리(115); 셋째, 제1 주파수(대개 일정한 주파수임)에서 입력 데이타 신호를 주기적으로 샘플링하여 입력 샘플링 데이타의 한 시퀀스를 형성하고 이 입력 샘플링 데이타의 시퀀스를 메모리(115)로 전송하며, 메모리(115)로부터 출력 디지탈 데이타의 한 시퀀스를 수신하여 이 출력 디지탈 데이타의 시퀀스를 출력 데이타 신호로 변환시키도록 메모리(115)에 연결되고 채널 인터페이스 회로(106)에 더 연결된 코덱(108); 넷째, 제1 인터럽트 신호를 생성하고 이 제1 인터럽트 신호를 프로세서(103)에 송신하도록 메모리(115)에 연결된 인터럽트 신호 발생기; 및 다섯째, 메모리(115)와 인터럽트 신호 발생기(128)에 연결된 인터페이스 회로(120) -상기 인터페이스 회로(120)는 프로세서(103)와 메모리(115) 사이의 데이타 전송 및 프로세서(103)로의 제1 인터럽트 신호의 송신을 위해 프로세서(103)에 더 연결 가능함 - 를 포함한다. 인터럽트 신호 발생기(128)는 또한 처리를 위한 디지탈 데이타의 소정의 제1 량의 존재 및/또는 송신을 위한 디지탈 데이타의 소정의 제2 량의 부재를 나타내는 제1 인터럽트 신호를 발생시키도록 더 응답할 수 있다. 인터럽트 신호 발생기(128)는 또한 입력 링 신호의 존재를 나타내는 제2 인터럽트 신호(제1 인터럽트 신호와 동일하거나 또는 동일하지 않음)를 발생시키도록 더 응답할 수 있으며, 이 경우에 인터럽트 회로(120)는 프로세서로의 제2 인터럽트 신호의 송신을 위해 프로세서에 더 연결된다. 다양한 제1 및 제2 인터럽트 신호들은 전형적으로 제2 주파수로 생성되는데, 이는 대개 불확정적 또는 가변 주파수이다.
또한, 양호한 실시예는 메모리(115)와 인터럽트 신호 발생기(128)에 연결되고, 채널 인터페이스 회로(106)에 더 연결된 상태 검출기를 포함하는데, 이 상태 검출기는 메모리(115) 내의 데이타 용량 컨디션을 검출하기 위해 응답하며, 메모리(115) 내의 데이타 용량의 검출에 응답하여, 상기 상태 검출기(136)는 통신 시스템을 위해 메모리(115)를 리세팅시키고 리트레이닝 과정을 개시시키는 상태 신호를 생성한다. 또한, 상태 검출기(136)는 통신 시스템 고장의 검출에 응답하며, 이러한 검출에 따라, 통신 채널(105)과의 접속을 종료시키는 상태 신호의 생성에 응답한다.
또한, 인터페이스 장치의 양호한 실시예에서, 인터럽트 신호 발생기(128)는 레인징 부분과 같은 트레이닝 모드의 제1 부분 동안 제1 인터럽트 주파수로 제1 인터럽트 신호를 생성하고, 트레이닝 상태 또는 과정의 잔여 부분과 같은 트레이닝 모드의 제2 부분 동안 제2 인터럽트 주파수로 제1 인터럽트 신호를 생성하며, 정상 상태 데이타 송신 동안과 같은 데이타 모드 동안에 제2 인터럽트 주파수로 제1 인터럽트 신호를 생성하도록 더 응답한다. 게다가, 양호한 실시예에서는, 메모리(115)의 용량이 인터럽트 주파수의 기능에 따라 변한다. 상세히, 메모리 용량은 제1 용량과 제2 용량 사이에서 변할 수 있는데, 상기 제1 용량은 인터럽트 신호가 제1 인터럽트 주파수로 생성될 때 발생하고, 상기 제2 용량은 인터럽트 신호가 제2 인터럽트 주파수로 생성될 때 발생한다.
도 6은 본 발명에 따른 수신 데이타 인터페이스 방법을 도시한 플로우 차트이다. 프로세스는 수신 데이타 신호로 시작하여, 도 3의 채널 인터페이스 회로(106)에 의해 수행되는 처리와 유사한 단계(300)에서 시작한다. 다음에, 수신 데이타 신호는 제1 확정 또는 소정의 주파수로 주기적으로 샘플링되고 디지탈 형태로 변환되어, 샘플링된 디지탈 데이타로, 샘플링된 수신 데이타의 시퀀스를 형성하는데(단계 305), 이는 도 3의 코덱(또는 A/D 변환기)(108)에 의해 제공되는 처리와 유사하다. 이러한 단계(305)는 입력 데이타가 이미 디지탈 형태여서 변환할 필요가 없는 디지탈 네트워크를 통한 데이타 수신 동안에는 생략될 수 있다. 다음에, 샘플링된 수신 데이타의 시퀀스는 도 3의 수신 샘플 FIFO(116)와 같은 메모리 내에 저장된다(단계 310). 다음에, 상기 방법은 메모리가 18 또는 90개의 샘플들과 같은 소정의 용량에 도달하였는지를 판정하고(단계 315), 만일 메모리 용량이 소정의 용량에 도달하였다면, 도 3의 상태 검출기(136) 및 인터럽트 발생기(128)에 의해제공된 처리에서와 같이, 인터럽트 신호가 생성되고 프로세서에 송신된다(단계 320). 만일 메모리 용량이 단계(315)에서 도달하지 않았다면, 상기 방법은 단계(305)로 반복 및 복귀하여 수신 신호를 디지탈 형태로 변환하고, 샘플링된 수신 디지탈 데이타를 메모리에 저장한다(단계 310). 다시, 디지탈 네트워크 환경에서는, 상기 방법은 또한 수신 디지탈 데이타를 메모리에 저장하는 단계(310)로의 복귀를 제외하고 반복한다. 이러한 프로세스 동안에, 상기 방법은 또한 입력 링 신호의 검출을 위해 수신 신호를 양자화하고(단계 325), 이 양자화된 데이타는 또한 1 비트 양자화기(118) 및 링 FIFO(112)에 의해 수행되는 처리와 유사한 방식으로 메모리 내에 저장된다(단계 330). 상기 방법은 링 FIFO(112)와 같은 입력 링 메모리가 소정의 용량에 도달하였는지를 판정하여(단계 335), 만일 그렇다면, 인터럽트 신호가 또한 생성된다(단계 320). 만일 입력 링 메모리가 소정의 용량에 도달하지 않았다면, 단계(325)로 복귀하여 프로세스를 반복한다. 인터럽트 신호가 생성되었을 때는 단계(320)로부터 진행하여, 프로세스는 제2 및 통상적 불확정 주파수로 샘플링된 디지탈 데이타 또는 양자화된 입력 링 정보를 복조, 디코딩, 균등화, 에러 정정, 및 다른 모뎀 동작이나 통신 기능과 같은 처리를 위해 프로세서에 전송한다. 상기 프로세스는 입력 신호가 중단하였는지, 즉 송신의 말단(end of transmission)이며 더이상 정보가 수신되지 않을 것을 나타내는 비트들의 소정의 시퀀스와 같은 입력 신호의 말단이 도달하였는지를 판정한다(단계 345). 만일 송신의 말단이 도달하지 않았다면, 즉 단계(345)에서 추가 정보가 수신되었다면, 프로세스는 단계(305)(또는 디지탈 통신 시스템에서는 단계(310))로 반복 및 복귀한다. 만일 송신의 말단이 도달하여, 단계(345)에서 추가 정보가 수신되지 않았다면, 프로세스는 종료된다(단계 350).
또한, 도 6(및 대응적으로 도 7)에 도시된 바와 같이, 양호한 실시예의 수신 데이타 프로세스 동안에, 도 3의 상태 검출기(136)에 의해 수행되는 처리와 유사한, 다양한 상태 검출 프로세스들이 발생한다. 상기 프로세스는 통신 시스템 고장 또는 다른 대변동 이벤트에 대해 모니터링하고, 데이타 용량(오버런 및 언더런) 컨디션들에 대해서 모니터링한다(단계 355). 만일 통신 시스템 고장 또는 다른 대변동 이벤트가 발생되었다면(단계 360), 본 방법은 통신을 중단하고(단계 365), 프로세스를 종료한다(단계 350). 만일 데이타 용량 컨디션이 발생하거나, 시퀀스 또는 동기의 손실을 발생할 수 있는 임의의 다른 이벤트가 발생하였다면(단계 370), 프로세스는 메모리의 리세팅과 통신 시스템의 리트레이닝을 제공하고(단계 375), 수신 데이타 프로세스로 복귀한다(단계 305)(또는 디지탈 통신 시스템에 대해서는 단계(310)).
도 7은 본 발명에 따른 송신 데이타 인터페이스 방법을 도시한 플로우 차트이다. 상기 방법은 대개 불확정 또는 가변 레이트나 주파수로 프로세서로부터 디지탈 데이타의 시퀀스 수신을 시작하여, 단계(400)를 개시한다. 디지탈 데이타의 시퀀스는 도 3의 송신 샘플 FIFO(114)와 같은 메모리 내에 저장된다(단계 410). 디지탈 데이타의 시퀀스는, 도 3의 코덱(또는 A/D 변환기)(108) 및 채널 인터페이스 회로(106) 또는 도 4의 디지탈 인터페이스 회로(140)에 의해 수행되는 처리와 유사하게, 아날로그 신호와 같은 출력 데이타 신호로 변환(대개 확정 주파수로)되어(단계 415), 채널 상으로 송신된다(단계 420). 또한, 상기 프로세스는 펄스 다이얼링 정보가 프로세서로부터 수신되었는지를 판정하여, 만일 그렇다면, 훅 FIFO(110)로 수행되는 처리에서와 같이, 펄스 다이얼링 정보가 메모리 내에 자장되고 채널 상으로 송신된다(단계 425). 상기 프로세스는 단계(435)로 계속되어, 상기 방법은 보다 많은 디지탈 데이타가 메모리 내에 저장되어 채널 상으로의 송신에 이용 가능한지를 판정한다. 만일 보다 많은 디지탈 데이타가 저장되어 단계(435)의 송신에 이용 가능하다면, 상기 프로세스는 단계(415)로 반복 및 복귀하여, 송신을 위해 디지탈 데이타의 시퀀스를 출력 데이타 신호로 변환시킨다. 만일 단계(435)에서 보다 많은 디지탈 데이타가 저장되어 송신에 이용 가능하지 않다면, 프로세스는 최종 수신 데이타가 송신의 말단을 나타냈는지를 판정한다(단계 440). 만일 프로세서로부터 수신된 최종 정보가 단계(440)에서 송신의 말단을 나타내지 않았다면, 상기 방법은 송신을 위해 보다 많은 디지탈 데이타를 수신하도록 프로세서로의 인터럽트 신호를 생성하고(450), 상기 프로세스는 단계(410)로 복귀 및 반복한다. 만일 프로세서로부터 수신된 최종 정보가 단계(440)에서 송신의 말단을 나타내었다면, 상기 프로세스는 종료한다(단계 460).
데이타 수신을 위해 도 6에 대응적으로 도시된 바와 같이, 도 7은, 양호한 실시예에서, 도 3의 상태 검출기(136)에 의해 수행되는 처리와 유사하게, 송신 데이타 처리 동안에 발생하는 다양한 상태 검출 프로세스들을 도시하고 있다. 상기 프로세스는 통신 시스템 고장 또는 다른 대변동 이벤트에 대해 모니터링하고, 데이타 용량 컨디션들을 모니터링한다(단계 465). 만일 통신 시스템 고장 또는 다른대변동 이벤트가 발생되었다면(단계 470), 상기 방법은 통신을 중단하고(단계475), 프로세스를 종료한다(단계 460). 만일 데이타 용량 컨디션이 발생되거나, 시퀀스 또는 동기의 손실을 일으킬 수 있는 임의의 다른 이벤트가 발생되었다면(단계480), 상기 프로세스는 메모리 리세팅과 통신 시스템의 리트레이닝을 제공하고(단계 485), 송신 데이타 프로세스로 복귀하여(410), 데이타가 프로세서로부터 수신되고 메모리 내에 저장된다.
상술한 바와 같이, 본 발명의 특징에 따른 데이타 수신 및 데이타 송신은 독립적으로 동작할 수 있다. 도 6 및 7에 도시되지는 않았으나, 데이타 송신 및 데이타 수신 기능은, 동시적인 전 이중 모뎀 또는 단말기 어댑터 동작에서와 같이, 직렬 또는 몇가지 관련 형태로 또한 동작할 수 있다. 이러한 2중 동작을 개괄하기 위해, 본 발명은 데이타 송신 및 수신을 위해 프로세서와 통신 채널 사이를 인터페이싱하는 방법을 포함하는데, 상기 프로세서는 통신 응용 프로그램을 갖는 데이타 단말 장치로 동작 가능하다. 상기 방법은 첫째, (a) 수신 데이타 신호를 형성하기 위해 통신 채널로부터 데이타 신호를 수신하는 단계(단계 300); (b) 샘플링된 수신 데이타의 시퀀스를 형성하도록 제1 주파수로 수신 데이타 신호를 주기적으로 샘플링하는 단계(단계 305); (c) 샘플링된 수신 데이타의 시퀀스를 메모리에 저장하는 단계(단계 310); 및 (d) 메모리로부터의 샘플링된 수신 데이타를 제2 주파수로 프로세서에 주기적으로 전송하는 단계(단계 340)와, 둘째, (e) 프로세서로부터의 디지탈 데이타의 시퀀스를 제2 주파수로 메모리에 주기적으로 전송하는 단계(단계 340); (f) 디지탈 데이타의 시퀀스를 메모리에 저장하는 단계(단계 410); (g) 출력데이타 신호를 생성하기 위해 디지탈 데이타의 시퀀스를 제1 주파수로 코덱에 주기적으로 전송하는 단계(단계 415); (h) 통신 채널을 통해 출력 데이타 신호를 송신하는 단계(420); 및 (i) 프로세서로의 인터럽트 신호를 생성하는 단계(단계 320 및 450)를 포함한다. 게다가, 상기 방법은 또한, (1) 디지탈 링 정보를 형성하기 위해 통신 채널로부터 수신된 입력 링 신호의 전압 레벨을 양자화하는 단계(단계 325); (2) 디지탈 링 정보를 메모리에 저장하는 단계(단계 330); 및 (3) 인터럽트 신호에 응답하여 메모리로부터의 디지탈 링 정보를 제2 주파수로 프로세서에 주기적으로 전송하는 단계(단계 320 및 340)를 포함하고 있는, (j) 통신 채널로부터의 입력 링 신호를 수신 및 검출하는 단계를 포함할 수 있다. 본 발명의 송신 특징은 또한, (k) 디지탈 데이타의 시퀀스가 펄스 다이얼링 정보인지를 판정하여, 상기 디지탈 데이타의 시퀀스가 펄스 다이얼링 정보인 경우에, 채널 상으로 대응 다이얼 펄스들을 송신하는 단계(단계 425)를 포함할 수 있다. 상기 송신 및 수신 방법은 (l) 수신 데이타 신호가 중단될 때까지 단계(a)에서 단계(d)까지, 및 단계(i)를 반복하는 단계; 및 (m) 프로세서로부터 전송된 디지탈 데이타의 종료 시퀀스가 메모리에 전송될 때까지 단계(e)에서 단계 (i)까지를 반복하는 단계를 포함할 수 있다. 더우기, 데이타 수신 및 데이타 송신 모두가 발생할 때는, 단계(a)에서 단계(d)까지는 단계(e)에서 단계(i)까지와 동시에 발생한다. 최종적으로, 송신 및 수신 방법은 (n) 데이타 용량 컨디션을 검출하고, 이러한 검출에 따라, 통신 시스템을 위해 메모리를 리세팅시키고 리트레이닝 과정을 개시하는 상태 신호를 생성하는 단계; 및 (o) 통신 시스템 고장을 검출하고, 이러한 검출에 따라, 통신 채널과의 접속을 중단하는 상태 신호를 생성하는 단계를 포함할 수 있다.
상기와 같이, 본 발명의 인터페이스 장치 및 방법은 데이타 송신 레이트 및 처리 레이트 불일치를 인식하여, 대응하는 병목 현상 형태의 문제점에 응답하기 위한 매카니즘을 제공한다. 송신을 위해 데이타가 필요하다는 것을 나타내는 인터럽트 신호에 응답하여, 프로세서는 단기간 저장을 위해 현재의 전형적으로 낮은 데이타 송신 레이트보다 높은 프로세서 레이트 또는 주파수로 많은 데이타를 송신 샘플 FIFO(114)에 송신할 수 있다. 대응적으로, 낮은 데이타 송신 레이트로 수신된 입력 데이타가 수신 샘플 FIFO(116) 내에 저장될 것이고, 다음에 높은 또는 고속 프로세서 레이트 또는 주파수로 프로세서에 의해 전체적으로 처리될 수 있다.
더우기, 이 때에, 프로세서와 인터페이스 장치 중 어느 것도 그 기능을 수행하기 위해 다른 것들을 지연시키거나 대기시킬 필요가 없어, 전체 성능이 최적화된다. 예를 들어, 입력 샘플들로 수신 샘플 FIFO(116)에 대해 채워지는 데에 요구되는 시간 동안, 프로세서는 다른 응용 기능들을 수행할 수 있다. 대응적으로, 데이타 송신을 위해, 프로세서는 다음에 낮은 데이타 송신 레이트로 송신하기 위한 정보를 저장하는 송신 샘플 FIFO(114)를 신속하게 채울 수 있다. 데이타가 송신되는 동안, 프로세서는 또한 다른 응용 프로그램들을 수행할 수 있어, 처리에 이용 가능한 수신 데이타가 너무 적거나 송신에 이용 가능한 처리된 데이타 너무 많게 되는 것으로 인한 병목 현상 형태의 상황이 발생하지 않는다. 본 발명의 장치 및 방법은 또한 통신 시스템 고장을 복구하고, 다양한 데이타 용량 컨디션 또는 다른 데이타 에러 컨디션을 복구하는 다양한 매카니즘을 제공할 수 있다.
전술한 바로부터, 본 발명의 신규한 개념의 본질 및 범위로부터 벗어나지 않으면서 수많은 변경 및 수정이 이루어질 수 있다는 것이 관찰될 것이다. 본 명세서에서 설명된 특정한 방법 및 장치는 어떠한 제한을 의도하거나 의미하는 것이 아니라는 것이 이해될 것이다. 물론, 첨부된 특허 청구의 범위는 그 범위 내에 이와 같은 모든 수정들을 포함하는 것을 의도로 한다. 본 발명은 또한 다음의 특허 청구의 범위로 정의된다.

Claims (10)

  1. 프로세서와 통신 채널 사이의 인터페이싱을 위한 인터페이스 장치에 있어서, 상기 프로세서는 트레이닝(training), 등화(equalization), 엔코딩, 및 디코딩의 모뎀 기능들을 수행할 수 있는 통신 응용 프로그램을 구비한 데이터 단말 장치 내에서 동작 가능하고, 상기 통신 응용 프로그램은 상기 인터페이스 장치로부터의 인터럽트 신호들에 응답하며, 상기 인터페이스 장치는
    입력 데이터 신호(incoming data signal)를 수신하고 출력 데이터 신호(outgoing data signal)를 송신하기 위해 상기 통신 채널에 연결 가능한 채널 인터페이스 회로(channel interface circuit);
    메모리;
    상기 메모리에 연결되고 상기 채널 인터페이스 회로에 더 연결되어, 샘플링된 입력 데이터의 시퀀스(sequence)를 형성하도록 제1 확정 주파수(first determinate frequency)로 입력 데이터 신호를 주기적으로 샘플링하여 상기 샘플링된 입력 데이터의 시퀀스를 상기 메모리로 전송하고, 상기 메모리로부터의 출력 디지탈 데이터의 시퀀스를 수신하여 상기 출력 디지탈 데이터의 시퀀스를 상기 출력 데이터 신호로 변환시키기 위한 코덱(codec);
    상기 메모리의 데이터 컨디션들에 응답하여 제1 인터럽트 신호를 생성하고 상기 제1 인터럽트 신호를 상기 프로세서에 송신하기 위한 인터럽트 신호 발생기(interrupt signal generator) - 상기 제1 인터럽트 신호는 제1과 제2 컨디션들 중의 하나를 지시하고, 상기 제1 컨디션은 상기 통신 응용 프로그램에 의한 프로세싱용으로 제1 선정량의 디지탈 데이터가 상기 메모리에 존재하는 것이고, 상기 제2 컨디션은 상기 채널로 전송하기 위한 제2 선정량의 디지털 데이터가 상기 메모리에 저장되어 있지 않은 것이며, 상기 통신 응용 프로그램은 상기 제1 컨디션에 응답하여 상기 메모리로부터 데이터를 제거하여 그 데이터에 모뎀 기능들을 수행할 수 있고, 상기 제2 컨디션에 응답하여 상기 메모리에 데이터를 기록할 수 있으며, 이 데이터는 상기 통신 응용 프로그램의 모뎀 기능들에 의해 처리되었음 -; 및
    상기 메모리, 상기 인터럽트 신호 발생기, 및 상기 프로세서에 접속되어, 상기 프로세서와 상기 메모리 사이의 데이터 전송과, 상기 프로세서에 상기 제1 인터럽트 신호의 송신을 위한 전기기계적 인터페이스 회로
    를 포함하고,
    상기 메모리는 가변 메모리 용량을 갖고, 상기 메모리 용량은 제1 용량과 제2 용량 사이에서 변하며, 상기 제1 용량은 상기 인터럽트 신호가 제1 인터럽트 주파수로 생성될 때 발생하고, 상기 제2 용량은 상기 인터럽트 신호가 제2 인터럽트 주파수로 생성될 때 발생하는 것을 특징으로 하는 인터페이스 장치.
  2. 제1항에 있어서,
    상기 메모리, 상기 인터럽트 신호 발생기, 및 상기 채널 인터페이스 회로에 접속되어, 통신 시스템의 고장에 응답하는 상태 검출기를 더 포함하고,
    통신 시스템 고장에 응답하여 상기 통신 채널과의 접속이 단절되는 것을 특징으로 하는 인터페이스 장치.
  3. 제1항에 있어서, 상기 인터럽트 신호 발생기는 상기 통신 채널로 인입 링 신호가 존재함을 지시하는 제2 인터럽트 신호를 생성하여 상기 프로세서에 송신하도록 응답하는 것을 특징으로 하는 인터페이스 장치.
  4. 제3항에 있어서, 상기 채널 인터페이스 회로에 접속되어 인입 링 신호를 검출하기 위한 1 비트 양자화기를 더 포함하는 것을 특징으로 하는 인터페이스 장치.
  5. 제4항에 있어서, 상기 메모리는 상기 입력 링 신호로서 검출되는 샘플링된 입력 데이터를 수신하기 위한 링 FIFO를 포함하는 것을 특징으로 하는 인터페이스 장치.
  6. 제1항에 있어서, 상기 인터럽트 신호 발생기는 제1 및 제2 레이트(rate) 중 하나로 인터럽트들을 발생시키기 위한 수단을 포함하고, 상기 제1 레이트는 상기 제2 레이트에 비해 낮은 레이트이며, 상기 인터럽트 신호 발생기는 트레이닝 이벤트(training event)에 응답하여 상기 트레이닝 이벤트의 데이터 송신 모드 동안 및 정상 상태(steady-state) 모드 동안에는 상기 인터럽트들이 제1 레이트로 생성되도록 하고 트레이닝 페이즈(training phase) 동안에는 제2 레이트로 생성되도록 하며,
    상기 가변 메모리 용량은 상기 인터럽트 신호의 발생이 저 주파수로부터 고주파수로 변할 때 제1 용량에서 제2 용량으로 변하고, 상기 메모리에의 상기 디지탈 데이터의 추가 시퀀스들의 전송 및 저장은 상기 메모리 내에 이전에 송신 및 저장된 상기 디지탈 데이터의 시퀀스들이 상기 제2 용량의 레벨에 도달할 때까지 보류되는 것을 특징으로 하는 인터페이스 장치.
  7. 제6항에 있어서, 상기 인터럽트 신호 발생기는 초기화 모드의 일부 동안에는 제1 인터럽트 주파수로 상기 제1 인터럽트 신호를 생성하고, 데이터 모드 동안에는 제2 인터럽트 주파수로 상기 제1 인터럽트 신호를 생성하도록 응답하는 것을 특징으로 하는 인터페이스 장치.
  8. 제6항에 있어서, 상기 제1 레이트로 인터럽트들을 생성하는 것과 상기 제2 레이트로 인터럽트들을 생성하는 것 사이의 천이 동안, 상기 메모리는, 상기 채널 또는 상기 프로세서에의 전송용으로 미판독된 상기 메모리 내에 포함된 샘플들이 충분히 판독될 때까지, 더 이상의 데이터를 수신하는 것이 디스에이블되어, 잔여의 미판독된 데이터가 상기 제2 레이트로 계속해서 판독될 수 있는 것을 특징으로 하는 인터페이스 장치.
  9. 제1항에 있어서, 상기 메모리는 궁극적으로 상기 통신 응용 프로그램의 모뎀기능들에 의해 처리될 샘플링된 입력 데이터를 저장하기 위한 수신 샘플 FIFO를 포함하는 것을 특징으로 하는 인터페이스 장치.
  10. 데이터 수신을 위해 프로세서와 통신 채널 사이를 인터페이싱하는 방법에 있어서, 상기 프로세서는 트레이닝(training), 등화(equalization), 엔코딩, 및 디코딩의 모뎀 기능들을 수행할 수 있는 통신 응용 프로그램을 구비한 데이터 단말 장치 내에서 동작 가능하고, 상기 통신 응용 프로그램은 인터럽트 신호들에 응답하며, 상기 방법은
    (a) 상기 통신 채널로부터의 데이터 신호를 수신하여 수신 데이터 신호를 형성하는 단계;
    (b) 상기 수신 데이터 신호를 제1 주파수로 주기적으로 샘플링하여 샘플링된 수신 데이터의 시퀀스를 형성하는 단계;
    (c) 상기 샘플링된 수신 데이터의 시퀀스를 메모리에 저장하는 단계;
    (d) 상기 프로세서에 인터럽트 신호를 생성하는 단계 -이 단계는
    (d1) 트레이닝 모드의 일부 동안 인터럽트 신호를 제1 인터럽트 주파수로 생성하는 단계와;
    (d2) 데이터 모드 동안 인터럽트 신호를 제2 인터럽트 주파수로 생성하는 단계를 포함함 -; 및
    (e) 상기 메모리로부터 상기 샘플링된 수신 데이터를 제2 주파수로 상기 프로세서에 주기적으로 전송하는 단계
    를 포함하는 것을 특징으로 하는 인터페이싱 방법.
KR1019980706792A 1996-02-28 1996-08-30 프로세서와통신채널사이의인터페이싱 KR100358025B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US08/607,911 US5802153A (en) 1996-02-28 1996-02-28 Apparatus and method for interfacing between a communications channel and a processor for data transmission and reception
US8/607,911 1996-02-28
US08/607,911 1996-02-28
PCT/US1996/014043 WO1997032432A1 (en) 1996-02-28 1996-08-30 Interfacing between a communications channel and a processor

Publications (2)

Publication Number Publication Date
KR19990087380A KR19990087380A (ko) 1999-12-27
KR100358025B1 true KR100358025B1 (ko) 2002-12-18

Family

ID=24434216

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980706792A KR100358025B1 (ko) 1996-02-28 1996-08-30 프로세서와통신채널사이의인터페이싱

Country Status (7)

Country Link
US (1) US5802153A (ko)
EP (1) EP0885517A4 (ko)
KR (1) KR100358025B1 (ko)
CN (1) CN1201241C (ko)
AU (1) AU6962696A (ko)
HK (1) HK1019679A1 (ko)
WO (1) WO1997032432A1 (ko)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6018755A (en) 1996-11-14 2000-01-25 Altocom, Inc. Efficient implementation of an FIR filter on a general purpose processor
NZ500194A (en) * 1997-03-21 2000-12-22 Canal Plus Sa Broadcasting randomized subscriber entitlement management messages for digital television
DE19716323A1 (de) * 1997-04-18 1998-10-22 Alsthom Cge Alcatel Modulationseinrichtung zur Modulation digitaler Signale
US5931950A (en) 1997-06-17 1999-08-03 Pc-Tel, Inc. Wake-up-on-ring power conservation for host signal processing communication system
DE19739530C1 (de) * 1997-09-09 1998-12-24 Siemens Ag Schaltungsanordnung zur Erzeugung eines Interruptsignals für einen Mikroprozessor
US6320847B1 (en) * 1997-11-18 2001-11-20 At&T Corp. Method and apparatus for reduction of call setup time using anticipation technique for multimedia applications in widely distributed networks
US6408351B1 (en) * 1998-03-31 2002-06-18 Compaq Computer Corporation Host modem having a peripheral codec powered by a peripheral bus
US6246754B1 (en) * 1998-06-09 2001-06-12 Legerity, Inc. Mechanism for changing a modem's connection rate within a family of interoperable modems
US6567464B2 (en) 1998-07-24 2003-05-20 Compaq Information Technologies Group, L.P. Fast retrain based on communication profiles for a digital modem
US6345071B1 (en) * 1998-07-24 2002-02-05 Compaq Computer Corporation Fast retrain based on communication profiles for a digital modem
US6216182B1 (en) * 1998-07-30 2001-04-10 Fore Systems, Inc. Method and apparatus for serving data with adaptable interrupts
US6711205B1 (en) 1998-09-25 2004-03-23 Intel Corporation Tone detector for use in a modem
US6661848B1 (en) 1998-09-25 2003-12-09 Intel Corporation Integrated audio and modem device
US6625208B2 (en) 1998-09-25 2003-09-23 Intel Corporation Modem using batch processing of signal samples
US6502138B2 (en) * 1998-09-25 2002-12-31 Intel Corporation Modem with code execution adapted to symbol rate
US6374312B1 (en) * 1998-09-25 2002-04-16 Intel Corporation System for dedicating a host processor to running one of a plurality of modem programs and dedicating a DSP to running another one of the modem programs
US6490628B2 (en) * 1998-09-25 2002-12-03 Intel Corporation Modem using a digital signal processor and a signal based command set
US6711206B1 (en) 1998-09-25 2004-03-23 Intel Corporation Modem using a digital signal processor and separate transmit and receive sequencers
US6236677B1 (en) * 1998-11-02 2001-05-22 Ming Chih Hsieh Modem operating with central office clock
US6233250B1 (en) 1998-11-13 2001-05-15 Integrated Telecom Express, Inc. System and method for reducing latency in software modem for high-speed synchronous transmission
GB2345992B (en) * 1999-03-10 2001-01-24 Elan Digital Systems Ltd Apparatus and method for handling peripheral device interrupts
USRE42661E1 (en) 1999-04-12 2011-08-30 V-Dot Technologies, Llc Method and apparatus for fast V.90 modem startup
US6912276B1 (en) 1999-04-12 2005-06-28 Silicon Laboratories, Inc. Modem on hold
US6731726B1 (en) 1999-04-12 2004-05-04 Conexant Systems, Inc. Communication on hold
US6704399B1 (en) * 1999-04-12 2004-03-09 Conexant Systems, Inc. Quick connect parameter exchange
US6819749B1 (en) 1999-04-12 2004-11-16 Mindspeed Technologies, Inc. Method and apparatus for fast V.90 modem startup
US6327249B1 (en) * 1999-08-04 2001-12-04 Ess Technology, Inc Data communication device
US6751302B1 (en) 2000-01-07 2004-06-15 Motorola, Inc. Method and apparatus for providing an automated selection of a telecommunication service from among a plurality of telecommunication services
DE10105707A1 (de) * 2001-02-08 2002-09-05 Siemens Ag Verfahren und Vorrichtung zur Datenübertragung
US7299350B2 (en) * 2002-01-17 2007-11-20 Intel Corporation Internet protocol security decryption with secondary use speculative interrupts
KR100480605B1 (ko) * 2002-07-25 2005-04-06 삼성전자주식회사 네트워크 제어기의 송신부 버퍼 및 수신부 버퍼를제어하는 방법 및 네트워크 제어기
US7016695B1 (en) * 2002-12-11 2006-03-21 National Semiconductor Corporation Apparatus and method for processing a deterministic data flow associated with a wireless communication signal
US7380151B1 (en) 2002-12-11 2008-05-27 National Semiconductor Corporation Apparatus and method for asynchronously clocking the processing of a wireless communication signal by multiple processors
US20050031026A1 (en) * 2003-08-07 2005-02-10 Huaiyu Zeng Hybrid computer modem
US7254165B2 (en) 2003-08-07 2007-08-07 Intel Corporation Re-configurable decoding in modem receivers
RU2445744C1 (ru) * 2010-07-07 2012-03-20 Общество С Ограниченной Ответственностью "Владимирский Завод "Электроприбор-1" Блок сопряжения устройства сопряжения двухпроводной линии с радиостанцией укв-диапазона
GB201321148D0 (en) * 2013-11-29 2014-01-15 Bridgeworks Ltd Data transfer
CN111610745B (zh) * 2020-05-08 2023-03-21 中国人民解放军海军潜艇学院 一种载人潜水器模拟训练平台控制方法及模拟训练平台

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5367534A (en) * 1993-06-16 1994-11-22 Universal Data Systems, Inc. Synchronous flow control method

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4823312A (en) * 1986-10-30 1989-04-18 National Semiconductor Corp. Asynchronous communications element
US5170470A (en) * 1988-05-02 1992-12-08 National Semiconductor Corp. Integrated modem which employs a host processor as its controller
US4965641A (en) * 1989-02-21 1990-10-23 Motorola, Inc. Processor modem
US5566208A (en) * 1994-03-17 1996-10-15 Philips Electronics North America Corp. Encoder buffer having an effective size which varies automatically with the channel bit-rate

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5367534A (en) * 1993-06-16 1994-11-22 Universal Data Systems, Inc. Synchronous flow control method

Also Published As

Publication number Publication date
MX9802208A (es) 1998-08-30
WO1997032432A1 (en) 1997-09-04
EP0885517A4 (en) 2003-01-22
HK1019679A1 (en) 2000-02-18
EP0885517A1 (en) 1998-12-23
AU6962696A (en) 1997-09-16
US5802153A (en) 1998-09-01
CN1214172A (zh) 1999-04-14
KR19990087380A (ko) 1999-12-27
CN1201241C (zh) 2005-05-11

Similar Documents

Publication Publication Date Title
KR100358025B1 (ko) 프로세서와통신채널사이의인터페이싱
US5799064A (en) Apparatus and method for interfacing between a communications channel and a processor for data transmission and reception
US5721830A (en) Host signal processing communication system that compensates for missed execution of signal maintenance procedures
US5727233A (en) Byte-mode and burst-mode data transfer mechanism for a high-speed serial interface
US4890316A (en) Modem for communicating at high speed over voice-grade telephone circuits
KR100204076B1 (ko) 데이터 전송용 어댑터
EP0378037B1 (en) Modem having a software-adapted modulation rate
US7027399B2 (en) Data communication device
US6108720A (en) Echo canceling modem which dynamically switches sizes of sample buffer between first size for quick response time and second size for robustness to interrupt latency
US5935220A (en) Apparatus and method for high speed data and command transfer over an interface
JPS6288461A (ja) 信号プロセツサの通信インタフエ−ス
US5008901A (en) Asymmetrical duplex error-controlled modem
US5892980A (en) System for dynamically changing the length of transmit and receive sample buffers utilizing previous responding to an interrupt in a communications system
US5295156A (en) Modem
US6862630B1 (en) Network transmitter with data frame priority management for data transmission
RU2700560C1 (ru) Устройство коммуникационного интерфейса gigaspacewire
US5793803A (en) Underrecovery system and method for block processing modems
MXPA98002208A (en) Interface between a channel of communications and a process
US6108371A (en) System and method for writing mixed interleaved and non-interleaved data to a modem register
RU187642U1 (ru) Устройство коммуникационного интерфейса gigaspacewire
KR100217738B1 (ko) 간이 교환장치의 컴퓨터 통신 스피드 향상방법
US6405268B1 (en) Dynamic block processing in a host signal processing modem
JP2003304301A (ja) 回線終端装置およびその回線側フロー制御方法および端末側フロー制御方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20120925

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20130927

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20140924

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20150924

Year of fee payment: 14