KR20220028120A - 하드웨어 가속 기반의 spi 인터페이스의 자동 판독 제어 시스템 및 방법 - Google Patents

하드웨어 가속 기반의 spi 인터페이스의 자동 판독 제어 시스템 및 방법 Download PDF

Info

Publication number
KR20220028120A
KR20220028120A KR1020227004006A KR20227004006A KR20220028120A KR 20220028120 A KR20220028120 A KR 20220028120A KR 1020227004006 A KR1020227004006 A KR 1020227004006A KR 20227004006 A KR20227004006 A KR 20227004006A KR 20220028120 A KR20220028120 A KR 20220028120A
Authority
KR
South Korea
Prior art keywords
read
data
group
register
counter
Prior art date
Application number
KR1020227004006A
Other languages
English (en)
Inventor
왕 자오
Original Assignee
아미크로 세미컨덕터 씨오., 엘티디.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 아미크로 세미컨덕터 씨오., 엘티디. filed Critical 아미크로 세미컨덕터 씨오., 엘티디.
Publication of KR20220028120A publication Critical patent/KR20220028120A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)

Abstract

본 발명은 하드웨어 가속 기반의 SPI 인터페이스의 자동 판독 제어 시스템 및 방법을 개시한다. 자동 판독 제어 시스템은 SPI 인터페이스 모듈, APB 인터페이스 모듈, 인터럽션 생성 모듈, DMA 컨트롤러, 상태 스케줄링 제어 모듈, 레지스터 그룹 모듈, 카운트 신호 생성 모듈, 송신 데이터 버퍼 및 수신 데이터 버퍼를 포함하고; 상태 스케줄링 제어 모듈, 레지스터 그룹 모듈 및 카운트 신호 생성 모듈은 하나의 상태 머신 시스템을 구성하며, 상태 스케줄링 제어 모듈은 레지스터 그룹 모듈의 구성 정보 및 카운트 신호 생성 모듈의 카운트 타이밍 정보에 따라 SPI 인터페이스의 센서 데이터에 대한 주기적 배치 및 자동 판독을 제어한다. 본 발명은 전술한 모듈을 적용하여 소프트웨어 알고리즘 대신 하드웨어 가속을 수행함으로써 하드웨어 고유의 처리 속도 우세를 충분히 발휘하고, CPU의 소프트웨어 인터럽션 지연 프로그램의 과도한 사용을 줄이며, CPU의 소프트웨어 처리 부담을 줄이고, 또한 하드웨어 가속의 기술적 효과도 달성한다.

Description

하드웨어 가속 기반의 SPI 인터페이스의 자동 판독 제어 시스템 및 방법
본 발명은 데이터 전송 처리 분야에 관한 것으로, 특히 하드웨어 가속 기반의 SPI 인터페이스의 자동 판독 제어 시스템 및 그 자동 판독 제어 방법에 관한 것이다.
SPI 인터페이스는 Motorola에서 처음 제안한 전이중, 동기식 직렬 전송 버스이다. SPI 인터페이스는 회로 구조가 간단하고 전송 속도가 빠르며 통신이 안정적인 등 장점을 구비하여 주로 마이크로 컨트롤러와 주변 기기 간의 통신에 사용된다. 현재에는 갈수록 많은 고속 센서 인터페이스에 SPI 인터페이스가 적용된다.
로봇의 지능화 발전은 다양한 센서의 응용 지원과 불가분의 관계이며, 그 중 자이로스코프 및 광학 유량계와 같은 센서는 로봇의 이동 제어 등 분야에서 널리 응용된다. 로봇 마이크로 컨트롤러는 SPI 인터페이스를 통해 자이로스코프 및 광학 유량계와 같은 주변 센서의 데이터 정보를 실시간으로 획득한다. 자이로스코프 및 광학 유량계에서 데이터를 판독하는 경우가 빈번하므로 이를 제어하기 위해서는 정밀한 타이머가 필요하다. 소프트웨어 인터럽션을 트리거하여 구현하는 경우, 빈번한 인터럽션은 소프트웨어 실행의 유창성에 영향을 미치고 소프트웨어 효율을 감소시키며 실시간 처리에 일정한 영향을 미친다.
상기 문제점을 감안하여 본 발명은 하드웨어를 통해 구현되는 SPI 인터페이스 센서 데이터의 자동 판독 제어 시스템을 제공한다. 자이로스코프 및 광학 유량계와 같은 센서에서 판독된 데이터는 정밀한 타이밍으로 계산되어야 하는데, 소프트웨어로는 실시간 처리 요구 사항을 달성하기 어려우므로 하드웨어 설계 방식을 적용하여 판독할 메모리의 데이터 자동 판독을 구현하는 바, 구체적인 기술적 해결수단은 하기와 같다.
CPU 및 판독할 외부 메모리에 각각 연결되고, SPI 인터페이스 모듈, APB 인터페이스 모듈, 인터럽션 생성 모듈 및 DMA 컨트롤러를 포함하는 하드웨어 가속 기반의 SPI 인터페이스의 자동 판독 제어 시스템으로서, 상기 자동 판독 제어 시스템은 상태 머신 컨트롤러, 송신 데이터 버퍼 및 수신 데이터 버퍼를 더 포함하고; SPI 인터페이스 모듈은, SPI 인터페이스 버스 타이밍에 따라 자동 판독 제어 시스템과 판독할 외부 메모리 간의 데이터 통신을 완료시키며, 송신 데이터 버퍼 및 수신 데이터 버퍼에 각각 판독할 외부 메모리와의 전송 채널을 제공하고; APB 인터페이스 모듈은, APB 버스 타이밍에 따라 레지스터 그룹 모듈에 대해 CPU로부터 송신된 구성 정보를 구성하며; 상태 머신 컨트롤러는, APB 인터페이스 모듈에 의해 전송된 구성 정보를 수신하되, 상태 머신 컨트롤러 내부에는 카운트 신호를 생성하는 구동 소스가 포함되고, 상태 머신 컨트롤러는 내부 구동 소스의 카운트 신호 구동하에, 구성 정보와 결부하여 해당 작업 상태를 스케줄링하며, 각 라운드 판독 조작에서 소정의 판독 빈도에 따라 판독할 외부 메모리 내의 데이터를 배치로 판독하도록 수신 데이터 버퍼를 제어하고; 송신 데이터 버퍼는, 레지스터 그룹 모듈에 의해 구성되고 판독할 외부 메모리 데이터에 액세스하여 판독하기 위한 어드레싱 주소를 수신함으로써, 각 라운드의 액세스 및 판독 조작 과정에서, 상기 자동 판독 제어 시스템이 판독할 외부 메모리 내 상이한 그룹 데이터의 타깃 주소 및/또는 소스 주소를 어드레싱하도록 지원하며; 수신 데이터 버퍼는, DMA 컨트롤러의 제어 작용하에, 상태 머신 컨트롤러에 의해 스케줄링된 작업 상태에 따라 판독할 외부 메모리에서 판독된 데이터를 자동으로 저장하고, 내부에 저장된 데이터를 소프트웨어의 호출을 위해 자동으로 외부 데이터 메모리에 전송하되, 상기 DMA 컨트롤러는, SPI 인터페이스 모듈을 통해 판독할 외부 메모리 내의 데이터를 판독하여 수신 데이터 버퍼에 저장하거나, 수신 데이터 버퍼에서 데이터를 판독하여 외부 데이터 메모리에 저장하고; 인터럽션 생성 모듈은, 자동 판독 제어 시스템이 판독할 외부 메모리의 데이터에 대한 한 라운드의 판독을 완료한 후, 인터럽션 신호를 생성하여 데이터 판독이 완료되었음을 CPU에 통지하며; 각 라운드의, 판독할 외부 메모리로부터의 1배치의 데이터 판독은 모두 레지스터 그룹 모듈 구성 정보에 따라 상이한 그룹으로 분할되고, 각 그룹의 데이터에 구성된 타깃 주소 및 소스 주소는 모두 상이하다.
종래 기술과 비교하여, 상기 기술적 해결수단은 하드웨어 자동 스케줄링 작업 및 하드웨어 지연 모듈을 통해 SPI 인터페이스가 주기적으로 판독할 외부 메모리(자이로스코프/광학 유량계) 내의 데이터를 판독하고, 상이한 판독 빈도에 따라 자동으로 배치별로 데이터를 판독할 수 있으므로 소프트웨어 지연 프로그램의 과도한 사용을 줄이고 나아가 CPU의 소프트웨어 처리 부담을 줄이며 하드웨어 가속 효과를 구현한다.
또한, 상기 상태 머신 컨트롤러는 레지스터 그룹 모듈, 카운트 신호 생성 모듈 및 상태 스케줄링 제어 모듈을 포함하되; 레지스터 그룹 모듈은, 지연 구성 정보 및 데이터 길이 구성 정보를 포함하여 상기 APB 인터페이스 모듈에 의해 전송된 구성 정보를 수신하며, 상태 스케줄링 제어 모듈, 카운트 신호 생성 모듈, 송신 데이터 버퍼 및 수신 데이터 버퍼에 대해 구성하고; 카운트 신호 생성 모듈은 타이머 및 카운터를 포함하되, 타이머는 레지스터 그룹 모듈의 지연 구성 정보를 타이밍 임계 파라미터로 사용하여 판독할 외부 메모리 내 각 그룹 데이터의 판독 빈도를 결정하기 위한 타이밍 신호를 카운트하여 생성하며; 상기 카운터는 레지스터 그룹 모듈의 데이터 길이 구성 정보를 데이터 길이 임계 파라미터로 사용하여 판독할 외부 메모리 내 각 그룹 데이터의 데이터 길이를 결정하기 위한 카운트 신호를 카운트하고; 상태 스케줄링 제어 모듈은, 레지스터 그룹 모듈의 구성 정보, 카운트 신호 생성 모듈의 카운트 정보 및 타이밍 정보에 따라 상기 자동 판독 제어 시스템이 판독할 외부 메모리의 데이터를 자동으로 판독하는 스케줄링 동작 및 작업 상태를 생성함으로써, 상기 자동 판독 제어 시스템이 소정의 시간 간격에 따라 판독할 외부 메모리 중 상이한 그룹 데이터를 자동으로 판독하도록 한다.
또한, 상기 레지스터 그룹 모듈은 인에이블 제어 레지스터, 주소 길이 선택 레지스터, 주소 선택 레지스터, 판독 대기 시간 레지스터, 바이트 길이 선택 레지스터, 그룹 간격 시간 레지스터, 최대 그룹 수 레지스터 및 재판독 대기 시간 레지스터를 포함하되; 인에이블 제어 레지스터는 상기 자동 판독 제어 시스템에 대해 리셋 정보를 구성하고; 주소 선택 레지스터는 상기 상태 스케줄링 제어 모듈 및 상기 송신 데이터 버퍼에 대해 어드레싱 주소를 구성하되, 상기 어드레싱 주소는 판독할 외부 메모리의 배치 데이터가 속한 분할 그룹의 그룹 번호와 매칭되며; 주소 길이 선택 레지스터는 상기 상태 스케줄링 제어 모듈 및 상기 송신 데이터 버퍼에 대해 어드레싱 주소 길이를 구성하되, 상기 어드레싱 주소 길이는 판독할 외부 메모리의 배치 데이터가 속한 분할 그룹의 그룹 번호와 매칭되고; 판독 대기 시간 레지스터는 상기 상태 스케줄링 제어 모듈 및 상기 수신 데이터 버퍼에 대해 판독 지연 파라미터를 구성하되, 상기 판독 지연 파라미터는, 상기 송신 데이터 버퍼가 어드레싱 주소에 대한 송신을 완료해서부터 상기 수신 데이터 버퍼가 판독할 외부 메모리 내의 데이터에 대한 수신을 시작하기 이전에 설정된 타이밍 파라미터이며; 바이트 길이 선택 레지스터는 상기 상태 스케줄링 제어 모듈 및 상기 수신 데이터 버퍼에 대해 판독할 외부 메모리의 데이터를 판독하는 데이터 길이를 구성하되, 상기 데이터 길이는 판독할 외부 메모리의 배치 데이터가 속한 분할 그룹의 그룹 번호와 매칭되고; 그룹 간격 시간 레지스터는 상기 상태 스케줄링 제어 모듈 및 상기 수신 데이터 버퍼에 대해 그룹 지연 파라미터를 구성하되, 상기 그룹 지연 파라미터는 판독할 외부 메모리 중 인접한 두 그룹의 데이터를 판독하는 시간 간격 파라미터이며; 최대 그룹 수 레지스터는 상기 자동 판독 제어 시스템에 대해 판독할 외부 메모리의 각 라운드에서 판독될 데이터의 최대 그룹 수를 구성하고; 재판독 대기 시간 레지스터는, 상기 자동 판독 제어 시스템에 대해 재판독 지연 파라미터를 구성하되, 상기 재판독 지연 파라미터는 상기 수신 데이터 버퍼가 현재 라운드에서 판독할 외부 메모리의 데이터에 대한 수신을 완료해서부터 상기 수신 데이터 버퍼가 다음 라운드의 판독할 외부 메모리 내의 데이터에 대한 수신을 시작하기 이전에 설정된 타이밍 파라미터이다.
종래 기술과 비교하여, 본 발명의 레지스터 그룹 모듈은 센서 데이터의 판독 정보를 유연하게 구성하는 것을 지원하고, 판독 과정의 상이한 타이밍 요구에 만족하고, 타깃 주소 소스를 풍부하게 한다.
또한, 상기 카운트 신호 생성 모듈은 그룹 카운터, 판독 대기 카운터, 바이트 카운터, 그룹 간격 카운터 및 재판독 대기 카운터를 포함하되; 그룹 카운터는 상기 수신 데이터 버퍼가 현재 판독 중인 판독할 외부 메모리의 데이터가 속한 그룹 번호를 카운트하여 출력하고; 판독 대기 카운터는 상기 송신 데이터 버퍼가 어드레싱 주소에 대한 송신을 완료해서부터 상기 수신 데이터 버퍼가 데이터에 대한 수신을 시작하기 이전에, 카운트 값이 상기 판독 지연 파라미터에 도달할 때까지 카운트 조작을 유지한 후, 제로 클리어링하며; 바이트 카운터는, 상기 수신 데이터 버퍼에 의해 판독된 데이터의 바이트 길이를 카운트하고, 카운트 값이 상기 바이트 길이 선택 레지스터에 의해 구성된 그룹 번호와 매칭되는 데이터 길이에 도달할 때마다 제로 클리어링하되, 한 그룹 데이터의 데이터 길이는 해당 그룹 데이터의 바이트 길이의 합이고; 그룹 간격 카운터는, 카운트 값이 상기 그룹 지연 파라미터에 도달할 때까지 상기 수신 데이터 버퍼에 의해 인접한 두 그룹의 데이터를 판독하는 사이에서 카운트 조작을 유지한 후, 제로 클리어링하며; 재판독 대기 카운터는, 상기 자동 판독 제어 시스템이 현재 라운드의 판독할 외부 메모리의 데이터에 대한 판독을 완료해서부터 다음 라운드의 판독할 외부 메모리의 데이터에 대한 판독을 시작하기 이전에, 카운트 값이 상기 재판독 지연 파라미터에 도달할 때까지 카운트 조작을 유지한 후 제로 클리어링하고; 판독 대기 카운터, 그룹 간격 카운터 및 재판독 대기 카운터의 카운트 값의 합은 판독할 외부 메모리 내 각 그룹 데이터의 판독 빈도를 결정하기 위한 타이밍 신호를 형성한다.
본 발명의 상기 카운트 신호 생성 모듈에 의해 생성된 타이밍 카운트 신호는 판독 데이터의 길이에 대해 구성하고, 주소와 데이터를 설정하고, 인접한 두 그룹의 데이터의 주소간에 대한 액세스 시간 간격을 설정한다.
또한, 상기 상태 스케줄링 제어 모듈은 리셋 작업 서브 모듈, 어드레싱 주소 구성 송신 서브 모듈, 판독 대기 제어 서브 모듈, 데이터 판독 제어 서브 모듈, 그룹 간 판독 제어 서브 모듈 및 데이터 판독 완료 제어 서브 모듈을 포함하되; 리셋 작업 서브 모듈은, 상기 자동 판독 제어 시스템이 파워 온 및 리셋되는 경우, 상기 인에이블 제어 레지스터가 리셋 정보를 구성하도록 제어하고, 어드레싱 주소 구성 송신 서브 모듈을 가동하여 작업을 시작하도록 하고; 어드레싱 주소 구성 송신 서브 모듈은, 상기 주소 길이 선택 레지스터에서 상기 그룹 카운터의 현재 카운트 값과 매칭되는 한 그룹 데이터의 어드레싱 주소 길이를 선택하는 동시에 상기 주소 선택 레지스터에서 그룹 번호와 매칭되는 어드레싱 주소를 선택하고, 상기 주소 길이 선택 레지스터 및 상기 주소 선택 레지스터가 구성 업데이트를 완료한 후, 상기 주소 선택 레지스터 중의 어드레싱 주소를 상기 송신 데이터 버퍼에 송신함으로써, 상기 송신 데이터 버퍼가 상기 SPI 인터페이스 모듈을 통해 판독할 외부 메모리를 판독하기 위한 어드레싱 주소를 송신하도록 하며; 상기 송신 데이터 버퍼가 상기 어드레싱 주소에 대한 송신을 완료한 후, 판독 대기 제어 서브 모듈을 가동하여 작업을 시작하도록 하고; 판독 대기 제어 서브 모듈은, 상기 자동 판독 제어 시스템이 어드레싱 주소에 대한 송신을 완료해서부터 데이터의 시간 지연을 수신할 때까지 카운트하도록 상기 판독 대기 카운터를 가동하고, 상기 판독 대기 카운터의 카운트 값이 상기 판독 지연 파라미터에 도달하면, 상기 판독 대기 카운터를 제로 클리어링한 후, 데이터 판독 제어 서브 모듈을 제어하여 작업을 가동하며; 상기 판독 대기 카운터의 카운트 값이 상기 판독 지연 파라미터에 도달하기 이전에, 상기 바이트 길이 선택 레지스터에서 그룹 번호와 매칭되는 데이터 길이를 선택하고; 데이터 판독 제어 서브 모듈은, 상기 바이트 카운터를 상기 수신 데이터 버퍼에 의해 판독된 각 그룹 데이터의 바이트 길이를 카운트하도록 가동하고, 상기 바이트 카운터가 상기 바이트 길이 선택 레지스터에 의해 구성된 그룹 번호와 매칭되는 데이터 길이까지 카운트하면, 상기 그룹 카운터의 카운트 값에 1을 가하도록 제어하며 상기 바이트 카운터를 제로 클리어링함으로써, 상기 상태 스케줄링 제어 모듈이 상기 수신 데이터 버퍼를 판독할 외부 메모리의 현재 한 그룹 데이터에 대한 판독을 종료하도록 하고 판독할 외부 메모리의 다음 그룹 데이터에 대한 판독을 시작하도록 제어한 후, 그룹 간 판독 제어 서브 모듈의 작업을 가동하며; 그룹 간 판독 제어 서브 모듈은, 상기 그룹 카운터의 카운트 값이 상기 최대 그룹 수 레지스터에 의해 구성된 현재 라운드의 판독될 데이터의 최대 그룹 수에 도달하면, 상기 그룹 카운터의 카운트 값을 제로 클리어링한 후, 데이터 판독 완료 제어 서브 모듈을 제어하여 작업을 가동하도록 하는 동시에 CPU에 인터럽션 신호를 송신하고; 그렇지 않으면, 상기 그룹 간격 카운터를 제어하여 카운트하도록 가동하며, 상기 그룹 간격 카운터의 카운트 값이 상기 그룹 지연 파라미터에 도달하면, 판독할 외부 메모리의 다음 그룹 데이터에 대한 판독 준비를 위해 어드레싱 주소 구성 송신 서브 모듈을 스케줄링하여 작업 상태에 다시 진입하도록 하고; 데이터 판독 완료 제어 서브 모듈은, 현재 라운드의 판독할 외부 메모리의 데이터 판독 조작 종료에 대한 지연 대기를 위해 상기 재판독 대기 카운터를 카운트하도록 가동하고, 상기 재판독 대기 카운터의 카운트 값이 상기 재판독 지연 파라미터에 도달하면, 상기 재판독 대기 카운터를 제로 클리어링하며, 다음 라운드의 판독할 외부 메모리의 데이터 판독 조작을 시작하기 위해 리셋 작업 서브 모듈을 스케줄링하여 작업 상태에 다시 진입하도록 한다.
종래 기술과 비교하여, 상기 상태 스케줄링 제어 모듈, 상기 레지스터 그룹 모듈, 상기 카운트 신호 생성 모듈이 하나의 상태 머신 시스템을 구성하고, 하드웨어 가속 기반의 SPI 인터페이스의 센서 데이터 통신 속도 및 자동 판독에 대한 제어를 구현한다. 상기 상태 스케줄링 제어 모듈은 상기 레지스터 그룹 모듈의 구성정보 및 상기 카운트 신호 생성 모듈의 카운트 타이밍 정보에 따라 상기 자동 판독 제어 시스템이 판독할 외부 메모리의 데이터를 자동으로 판독하는 스케줄링 동작 및 작업 상태를 생성함으로써, 상기 자동 판독 제어 시스템이 소정의 시간 간격에 따라 판독할 외부 메모리 중 상이한 그룹 데이터를 자동으로 판독하도록 한다
또한, 상기 송신 데이터 버퍼 및 상기 수신 데이터 버퍼는 모두 선입선출 큐이고; 상기 주소 선택 레지스터에 의해 가장 먼저 송신된 어드레싱 주소는 상기 송신 데이터 버퍼에 가장 먼저 저장되고, 상기 송신 데이터 버퍼의 헤드에 저장된 어드레싱 주소는 판독할 외부 메모리에 가장 먼저 송신되며; 상기 수신 데이터 버퍼는 판독할 외부 메모리의 가장 먼저 판독될 데이터를 가장 먼저 저장하고, 상기 수신 데이터 버퍼의 헤드에 저장된 데이터는 DMA 컨트롤러의 제어 작용하에 외부 데이터 메모리에 가장 먼저 송신된다. 본 발명에 따르면, CPU 또는 DMA에 대한 의존성을 약화하고, 센서 데이터의 자동 전송을 제어하며, 각종의 센서, 버스 인터페이스 기기에 적용된다.
또한, 상기 자동 판독 제어 시스템은 한 라운드의 상기 판독할 외부 메모리의 데이터에 대한 판독 및 액세스 과정에서, 3개 그룹의 상이한 타깃 주소에 대한 어드레싱을 지원한다. 데이터의 판독 효율을 향상시킨다.
본 발명은 또한 상기 자동 판독 제어 시스템 기반의 자동 판독 제어 방법을 제공한다. 상기 방법은, APB 버스 타이밍에 따라 CPU에 의해 전송된 구성 정보를 수신하는 단계 A; 상태 머신 컨트롤러의 내부 구동 소스의 카운트 신호 구동하에, 구성 정보와 결부하여 해당 작업 상태를 스케줄링하며, 수신 데이터 버퍼를 각 라운드 판독 조작에서 먼저 송신 데이터 버퍼에 판독할 외부 메모리 내 상이한 그룹 데이터의 어드레싱 주소를 송신하도록 제어한 후, 스케줄링된 해당 작업 상태와 결부하여 수신 데이터 버퍼를 소정의 판독 빈도에 따라 DMA 컨트롤러를 통해 판독할 외부 메모리 내의 데이터를 배치로 판독하도록 제어하는 단계 B; 및 한 라운드의 판독할 외부 메모리의 데이터에 대한 판독을 완료한 후, 인터럽션 신호를 생성하여 데이터 판독이 완료되었음을 CPU에 통지하는 단계 C를 포함하되, 각 라운드의, 판독할 외부 메모리로부터의 1배치의 데이터 판독은 모두 레지스터 그룹 모듈 구성 정보에 따라 상이한 그룹으로 분할되며, 각 그룹의 데이터에 구성된 타깃 주소 및 소스 주소는 모두 상이하다. 상기 기술적 해결수단을 통해 하드웨어 시스템은 배치로 외부 메모리 내의 판독할 데이터를 빈도적으로 판독할 수 있으므로 CPU 쿼리 빈도를 절약하고, 데이터 전송 과정을 가속화하며, 또한 소프트웨어 실행 유창성을 향상시키고 소프트웨어 및 하드웨어 협업 가속 효율을 향상시킨다.
또한, 상기 단계 B는 구체적으로, 인에이블 제어 레지스터가 하이 레벨로 설정되면 단계 S2로 진입하고, 그렇지 않으면 리셋 상태를 유지하는 단계 S1; 주소 길이 선택 레지스터에서 그룹 카운터의 현재 카운트 값과 매칭되는 어드레싱 주소 길이를 선택하는 동시에 주소 선택 레지스터에서 그룹 카운터의 현재 카운트 값과 매칭되는 어드레싱 주소를 선택하며, 주소 길이 선택 레지스터 및 주소 선택 레지스터가 구성 업데이트를 완료한 후, 주소 선택 레지스터 중의 어드레싱 주소를 상기 송신 데이터 버퍼에 송신하고, 상기 송신 데이터 버퍼가 상기 어드레싱 주소의 송신을 완료한 후, 단계 S3에 진입하는 단계 S2; 판독 대기 카운터를 가동하여 상기 자동 판독 제어 시스템이 어드레싱 주소의 송신 완료로부터 데이터 수신까지의 시간 지연을 카운트하는 동시에 바이트 길이 선택 레지스터에서 그룹 카운터의 현재 카운트 값과 매칭되는 데이터 길이를 선택하고, 판독 대기 카운터의 카운트 값이 판독 대기 시간 레지스터에 의해 구성된 판독 지연 파라미터에 도달하면, 판독 대기 카운터를 제로 클리어링한 후 단계 S4로 진입하는 단계 S3; 바이트 카운터를 가동하여 상기 수신 데이터 버퍼에 의해 판독된 각 그룹 데이터의 바이트 길이를 카운트하고, 바이트 카운터가 바이트 길이 선택 레지스터에 의해 구성된, 그룹 카운터의 현재 카운트 값과 매칭되는 데이터 길이까지 카운트하면, 그룹 카운터의 카운트 값에 1을 가하도록 제어하며, 바이트 카운터를 제로 클리어링한 후 단계 S5로 진입하는 단계 S4; 그룹 카운터의 카운트 값이 최대 그룹 수 레지스터에 의해 구성된 현재 라운드의 판독될 데이터의 최대 그룹 수에 도달하는지 여부를 판단하여 도달하면 그룹 카운터의 카운트 값을 제로 클리어링한 후, 단계 S6으로 진입하고; 그렇지 않으면 그룹 간격 카운터를 카운트를 가동하도록 제어하며, 그룹 간격 카운터의 카운트 값이 그룹 간격 시간 레지스터에 의해 구성된 그룹 지연 파라미터에 도달하는지 여부를 판단하여 도달하면 단계 S2로 돌아가고, 그렇지 않으면 그룹 간격 카운터를 카운트를 유지하도록 제어하는 단계 S5; 및 재판독 대기 카운터의 카운트를 가동하여 재판독 대기 카운터의 카운트 값이 재판독 대기 시간 레지스터에 의해 구성된 재판독 지연 파라미터에 도달하면, 재판독 대기 카운터를 제로 클리어링하고 단계 S1로 돌아가는 단계 S6을 포함하고, 상기 상태 머신 컨트롤러 내부의 레지스터에는 인에이블 제어 레지스터, 주소 길이 선택 레지스터, 주소 선택 레지스터, 바이트 길이 선택 레지스터, 최대 그룹 수 레지스터, 판독 대기 시간 레지스터, 그룹 간격 시간 레지스터 및 재판독 대기 시간 레지스터가 포함되며; 상기 상태 머신 컨트롤러 내부의 카운터에는 상기 그룹 카운터, 상기 판독 대기 카운터, 상기 바이트 카운터, 상기 최대 그룹 수 레지스터, 상기 그룹 간격 카운터 및 상기 재판독 대기 카운터가 포함된다.
도 1은 하드웨어 가속 기반의 SPI 인터페이스의 자동 판독 제어 시스템 프레임워크의 모식도이다.
도 2는 하드웨어 가속 기반의 SPI 인터페이스의 자동 판독 제어 방법의 일 실시예의 흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다. 당업자들은 본 발명에 개시된 모든 모듈, 서브 모듈, 컨트롤러 및 시스템은 모두 VHDL 또는 Verilog와 같은 하드웨어 기술 언어로 설계되고 집적 회로로 제조될 수 있는 넷리스트 정보를 형성하도록 매핑되는 디지털 논리 회로임에 유의해야 한다.
자이로스코프, 광류 센서와 같은 기존의 센서는 데이터를 판독하기 위해 정밀한 타이밍 메커니즘이 필요한데, 소프트웨어로 수행할 경우 CPU 인터럽션 쿼리 프로세서가 많이 존재하고 데이터의 실시간 처리 효과에 직접적인 영향을 미치기 때문에 하드웨어 설계 방식을 적용하여 자이로스코프 및 광류 센서의 데이터 자동 판독을 구현한다. 본 실시예는 SPI 인터페이스를 통해 구현되거나 다른 슬레이브 버스 인터페이스를 적용하여 판독할 메모리와 도킹을 구현할 수도 있는 바, 그 구현 원리는 다음과 같다. 시간을 설정하여 SPI 인터페이스를 구동하여 자이로스코프 및 광류 센서 내의 판독할 메모리의 데이터를 배치별로 판독하고, 판독한 데이터를 송신 FIFO에 저장한 후, 상태 머신의 스케줄링하에 소프트웨어에 의해 사용가능 토록 범용 DMA 방식을 통해 데이터가 자동으로 전송된다.
하드웨어 가속 기반의 SPI 인터페이스의 자동 판독 제어 시스템으로서, 자동 판독 제어 시스템은 CPU 및 판독할 외부 메모리에 각각 연결되되, 여기서 판독할 메모리는 센서 기기일 수 있고, 자동 판독 제어 시스템은 범용 SPI 인터페이스 모듈, 범용 APB 인터페이스 모듈, 범용 인터럽션 생성 모듈 및 범용 DMA 컨트롤러를 포함하며, 기존 시스템과의 차이점은 다음과 같다. 상기 자동 판독 제어 시스템은 상태 머신 컨트롤러, 송신 데이터 버퍼 및 수신 데이터 버퍼를 더 포함하고; SPI 인터페이스 모듈은, 범용 SPI 인터페이스 버스 타이밍에 따라 자동 판독 제어 시스템과 판독할 외부 메모리 간의 데이터 통신을 완료시키며, 송신 데이터 버퍼 및 수신 데이터 버퍼에 각각 판독할 외부 메모리와의 전송 채널을 제공하고; APB 인터페이스 모듈은, APB 버스 타이밍에 따라 레지스터 그룹 모듈에 대해 CPU로부터 송신된 데이터 판독 구성 정보를 구성하며; 상태 머신 컨트롤러는 APB 인터페이스 모듈에 의해 전송된 구성 정보를 수신하되, 상태 머신 컨트롤러 내부에는 카운트 신호를 생성하는 구동 소스가 포함되고, 상태 머신 컨트롤러는 내부 구동 소스의 카운트 신호 구동하에, 구성 정보와 결부하여 해당 작업 상태를 스케줄링하며, 각 라운드 판독 조작에서 소정의 판독 빈도에 따라 판독할 외부 메모리 내의 데이터를 배치로 판독하도록 수신 데이터 버퍼를 제어하고; 송신 데이터 버퍼는, 레지스터 그룹 모듈에 의해 구성되고 판독할 외부 메모리 데이터에 액세스하여 판독하기 위한 어드레싱 주소를 수신함으로써, 각 라운드의 액세스 및 판독 조작 과정에서, 상기 자동 판독 제어 시스템이 판독할 외부 메모리 내 상이한 그룹 데이터의 타깃 주소 및/또는 소스 주소를 어드레싱하도록 지원하며; 수신 데이터 버퍼는, 범용 DMA 컨트롤러의 제어 작용하에, 상태 머신 컨트롤러에 의해 스케줄링된 작업 상태에 따라 판독할 외부 메모리에서 판독된 데이터를 자동으로 저장하고, 내부에 저장된 데이터를 소프트웨어의 호출을 위해 자동으로 외부 데이터 메모리에 전송하되, 상기 범용 DMA 컨트롤러는, SPI 인터페이스 모듈을 통해 판독할 외부 메모리 내의 데이터를 판독하여 수신 데이터 버퍼에 저장하거나, 수신 데이터 버퍼에서 데이터를 판독하여 외부 데이터 메모리에 저장하고; 인터럽션 생성 모듈은, 자동 판독 제어 시스템이 판독할 외부 메모리의 데이터에 대한 한 라운드의 판독을 완료한 후, 인터럽션 신호를 생성하여 데이터 판독이 완료되었음을 CPU에 통지하며; 각 라운드의, 판독할 외부 메모리로부터의 1배치의 데이터 판독은 모두 레지스터 그룹 모듈 구성 정보에 따라 상이한 그룹 데이터로 분할되고, 각 그룹의 데이터는 모두 대응되는 그룹 번호와 매칭되며, 각 그룹의 데이터에 구성된 타깃 주소 및 소스 주소는 모두 상이하다.
일 실시예로서, 상기 상태 머신 컨트롤러는 레지스터 그룹 모듈, 카운트 신호 생성 모듈 및 상태 스케줄링 제어 모듈을 포함하되; 레지스터 그룹 모듈은, 지연 구성 정보 및 데이터 길이 구성 정보를 포함하여 상기 APB 인터페이스 모듈에 의해 전송된 구성 정보를 수신하며, 상태 스케줄링 제어 모듈, 카운트 신호 생성 모듈, 송신 데이터 버퍼 및 수신 데이터 버퍼에 대해 구성하고; 카운트 신호 생성 모듈은 타이머 및 카운터를 포함하되, 타이머는 레지스터 그룹 모듈의 지연 구성 정보를 타이밍 임계 파라미터로 사용하여 판독할 외부 메모리 내 각 그룹 데이터의 판독 빈도를 결정하기 위한 타이밍 신호를 카운트하여 생성하며; 상기 카운터는 레지스터 그룹 모듈의 데이터 길이 구성 정보를 데이터 길이 임계 파라미터로 사용하여 판독할 외부 메모리 내 각 그룹 데이터의 데이터 길이를 결정하기 위한 카운트 신호를 카운트하고; 상태 스케줄링 제어 모듈은, 레지스터 그룹 모듈의 구성 정보, 카운트 신호 생성 모듈의 카운트 정보 및 타이밍 정보에 따라 상기 자동 판독 제어 시스템이 판독할 외부 메모리의 데이터를 자동으로 판독하는 스케줄링 동작 및 작업 상태를 생성함으로써, 상기 자동 판독 제어 시스템이 소정의 시간 간격에 따라 판독할 외부 메모리 중 상이한 그룹 데이터를 자동으로 판독하도록 한다.
도 1에 도시된 바와 같이, 상기 자동 판독 제어 시스템은 CPU 및 판독할 외부 메모리에 각각 연결되고, 자동 판독 제어 시스템은 범용 SPI 인터페이스 모듈, 범용 APB 인터페이스 모듈, 범용 인터럽션 생성 모듈 및 범용 DMA 컨트롤러를 포함하며, 이러한 일반적인 인터페이스 모듈은 SPI 인터페이스 버스, APB 버스 및 DMA 버스와 같은 버스 타입에 따라 대응되게 구성된다. 본 실시예의 CPU는 단일 칩 마이크로 컴퓨터 또는 SOC 칩으로 대체되고, 판독할 외부 메모리는 직렬 인터페이스 또는 병렬 인터페이스의 통신 기기일 수 있다. 상기 자동 판독 제어 시스템은 상태 스케줄링 제어 모듈, 레지스터 그룹 모듈, 카운트 신호 생성 모듈, 송신 데이터 버퍼 및 수신 데이터 버퍼를 더 포함한다.
SPI 인터페이스 모듈은 자동 판독 제어 시스템이 판독할 외부 메모리를 액세스하는 채널로서, 범용 SPI 인터페이스 버스 타이밍에 따라 자동 판독 제어 시스템과 판독할 외부 메모리 간의 데이터 통신을 완료시키며, 송신 데이터 버퍼 및 수신 데이터 버퍼에 각각 판독할 외부 메모리와의 전송 채널을 제공하고, 송신 데이터 버퍼 및 수신 데이터 버퍼가 제공하는 판독할 외부 메모리와의 상호 작용 메커니즘은 SPI 인터페이스 버스의 작용 메커니즘과 동일하다.
APB 인터페이스 모듈은 CPU가 자동 판독 제어 시스템을 액세스하는 채널로서, AHB 버스 타이밍에 따라 레지스터 그룹 모듈에 대해 CPU로부터 송신된 데이터 판독 구성 정보를 구성하고, CPU와 상기 자동 판독 제어 시스템 간의 통신을 완료한다.
레지스터 그룹 모듈은 APB 인터페이스 모듈에 의해 전송된 구성 정보를 수신하고, 제어 신호 라인을 통해 상태 스케줄링 제어 모듈, 카운트 신호 생성 모듈, 송신 데이터 버퍼 및 수신 데이터 버퍼에 대해 제어 파라미터를 구성할 수 있으며, CPU는 APB 인터페이스 모듈을 통해 레지스터 그룹 모듈 내부의 레지스터에 대해 파라미터를 구성한다.
카운트 신호 생성 모듈은 레지스터 그룹 모듈의 구성 정보에 따라 판독할 외부 메모리 내 각 그룹 데이터의 판독 빈도를 결정하기 위한 타이밍 신호를 카운트하여 생성하고, 또한 판독할 외부 메모리 내 각 그룹 데이터의 데이터 길이를 결정하기 위한 카운트 신호를 생성하며, 카운트 신호 생성 모듈 내부의 타이머 또는 카운터는 시스템의 클록 신호에 대해 주파수 분할을 수행할 수 있고, 상술한 판독 빈도 및 카운트 신호와 결부하여 상기 자동 판독 제어 시스템의 직렬 통신 속도에 대한 제어를 완료한다.
상태 스케줄링 제어 모듈은 상기 자동 판독 제어 시스템 전체의 작업 상태에 대한 스케줄링을 담당하며, 레지스터 그룹 모듈 및 카운트 신호 생성 모듈의 신호를 수신하고, 상태 스케줄링 제어 모듈은 레지스터 그룹 모듈의 구성 정보 및 카운트 신호 생성 모듈의 카운트 타이밍 정보에 따라 상기 자동 판독 제어 시스템이 판독할 외부 메모리의 데이터를 자동으로 판독하는 스케줄링 동작 및 작업 상태를 생성함으로써, 상기 자동 판독 제어 시스템이 소정의 시간 간격에 따라 판독할 외부 메모리 중 상이한 그룹 데이터를 자동으로 판독하되, 여기서, 상태 스케줄링 제어 모듈에 의해 생성된 동작 및 신호에는 인에이블 신호, 이상 신호, 카운트 제어 신호, 버퍼 판독 및 라이팅 인에이블 신호, 칩 선택 신호 등이 포함된다.
송신 데이터 버퍼는 레지스터 그룹 모듈에 의해 구성되고 판독할 외부 메모리 데이터에 대해 액세스하여 판독하기 위한 어드레싱 주소를 수신함으로써, 각 라운드의 액세스 및 판독 조작 과정에서, 상기 자동 판독 제어 시스템이 판독할 외부 메모리 내 상이한 그룹 데이터의 타깃 주소 및/또는 소스 주소를 어드레싱하도록 지원하되, 여기서, 송신 데이터 버퍼에 의해 캐시된 어드레싱 주소는 SPI 인터페이스 모듈을 통해 판독할 외부 메모리에 송신된다.
수신 데이터 버퍼는, 범용 DMA 컨트롤러의 제어 작용하에, 상태 스케줄링 제어 모듈의 스케줄링 동작 및 작업 상태 신호에 따라 판독할 외부 메모리에서 판독된 데이터를 저장하고, 내부에 저장된 데이터를 소프트웨어에 의해 호출되도록 자동으로 외부 데이터 메모리에 전송하되, 상기 범용 DMA 컨트롤러는, SPI 인터페이스 모듈을 통해 판독할 외부 메모리 내의 데이터를 판독하여 수신 데이터 버퍼에 저장하거나, 수신 데이터 버퍼에서 데이터를 판독하여 외부 데이터 메모리에 저장한다.
인터럽션 생성 모듈은, 자동 판독 제어 시스템이 한 라운드의 판독할 외부 메모리의 데이터의 판독을 완료한 후, 즉 자이로스코프 또는 광학 유량계와 같은 센서의 데이터를 1회 판독한 후, 인터럽션 신호를 생성하여 한 라운드의 데이터 판독이 완료되었음을 CPU에 통지한다.
여기서, 배치로 데이터를 판독하는 경우, 각 라운드에서 판독된, 판독할 외부 메모리의 1배치의 데이터를 모두 레지스터 그룹 모듈 구성 정보에 따라 상이한 그룹의 판독할 데이터로 분할하고, 각 그룹의 판독할 데이터에 구성된 타깃 주소 및 소스 주소는 모두 상이하며, 각 그룹의 판독할 데이터의 데이터 길이는 상이할 수 있으나 복수의 데이터를 가질 수 있으며, 모두 구성된 어드레싱 주소에 따라 순차적으로 판독되고, 상기 수신 데이터 버퍼는 각 그룹 내의 소스 주소 및 타깃 주소에 따라 판독할 외부 메모리의 데이터를 어드레싱할 수 있다. 소프트웨어에 대한 1회의 초기화 설정만으로 여러 그룹의 상이한 타깃 주소에 액세스하고, 빈번한 배치의 데이터 처리를 구현할 수 있으므로 센서의 다양한 데이터 정보를 보다 효율적으로 판독하고 리프레싱할 수 있다.
종래 기술과 비교하여, 본 실시예에 개시된 하드웨어 가속 기반의 SPI 인터페이스의 자동 판독 제어 시스템은 하드웨어에 의한 자동적인 작업의 스케줄링 및 하드웨어 지연 모듈을 통해 SPI 인터페이스가 주기적으로 판독할 외부 메모리(자이로스코프/광학 유량계) 내의 데이터를 판독하고, 상이한 판독 빈도 요구 사항을 충족시킨다. 본 발명은 전술한 모듈을 적용하여 소프트웨어 알고리즘 대신 하드웨어 가속에 의해 하드웨어 고유의 처리 속도 우세를 충분히 발휘하고, CPU의 소프트웨어 인터럽션 지연 프로그램의 과도한 사용을 줄이며, 불필요한 CPU 판독 조작을 줄이고, 나아가 CPU의 소프트웨어 처리 부담을 줄이며 또한 하드웨어 가속의 기술적 효과도 달성한다.
구체적으로, 도 1에 도시된 바와 같이, 상기 레지스터 그룹 모듈은 인에이블 제어 레지스터(auto_read_en), 주소 길이 선택 레지스터(addr_length_sel), 주소 선택 레지스터(addr_search), 판독 대기 시간 레지스터(wait_time_num), 바이트 길이 선택 레지스터(byte_length_sel), 그룹 간격 시간 레지스터(group_time_num), 최대 그룹 수 레지스터(group_num) 및 재판독 대기 시간 레지스터(next_time_num)를 포함한다.
인에이블 제어 레지스터(auto_read_en)는, 상기 자동 판독 제어 시스템에 대해리셋 정보를 구성하고, 인에이블 제어 레지스터(auto_read_en)가 1로 설정되면, 상기 자동 판독 제어 시스템을 어드레싱 작업 상태에 진입하도록 제어한다.
주소 선택 레지스터(addr_search_sel)는, 상기 상태 스케줄링 제어 모듈 및 상기 송신 데이터 버퍼에 대해 판독할 외부 메모리의 모든 그룹 데이터의 어드레싱 주소를 포함한 어드레싱 주소를 구성하되, 상기 어드레싱 주소는 판독할 외부 메모리의 1배치의 데이터가 속한 분할 그룹의 그룹 번호와 매칭되는 바, 예를 들어 구역별로 그룹 번호가 1인 한 그룹 데이터의 어드레싱 주소, 그룹 번호가 2인 한 그룹 데이터의 어드레싱 주소 및 그룹 번호가 3인 한 그룹 데이터의 어드레싱 주소가 저장된다. 본 실시예는 판독된 데이터의 그룹핑 상황에 따라 3개 그룹의 주소 선택 레지스터(addr_search_0, addr_search_1 또는 addr_search_2)로 분할되며, 본 시스템의 어드레싱 주소 데이터는 레지스터 방식으로 저장될 수 있다.
주소 길이 선택 레지스터(addr_length_sel)는, 상기 상태 스케줄링 제어 모듈 및 상기 송신 데이터 버퍼에 대해 판독할 외부 메모리의 모든 그룹 데이터의 어드레싱 주소 길이를 포함한 어드레싱 주소 길이를 구성하되, 상기 어드레싱 주소 길이는 판독할 외부 메모리의 1배치의 데이터가 속한 분할 그룹의 그룹 번호와 매칭되는 바, 예를 들어 구역별로 그룹 번호가 1인 한 그룹 데이터의 어드레싱 주소 길이, 그룹 번호가 2인 한 그룹 데이터의 어드레싱 주소 길이 및 그룹 번호가 3인 한 그룹 데이터의 어드레싱 주소 길이가 저장된다. 본 실시예는 판독된 데이터의 그룹핑 상황에 따라 3개 그룹의 주소 길이 선택 레지스터(addr_length_0, addr_length_1 또는 addr_length_2)로 분할되며, 본 시스템의 어드레싱 주소 길이는 레지스터 방식으로 존재할 수 있고; 본 실시예는 주소 길이 선택 레지스터(addr_length_sel)에 내장된 어드레싱 주소 길이를 8bit 또는 16bit로 설정할 수 있는 바, addr_length_sel이 0인 경우, 8bit 어드레싱 주소를 구성하고; addr_length_sel이 1인 경우, 16bit 어드레싱 주소를 구성함으로써, 어드레싱 주소 길이가 유연하고 제어 가능하여 자이로스코프, 광류 센서와 같은 상이한 모델 센서에 대한 호환성이 더 우수하다.
판독 대기 시간 레지스터(wait_time_num)는, 상기 상태 스케줄링 제어 모듈 및 상기 수신 데이터 버퍼에 대해 판독 지연 파라미터를 구성하되, 상기 판독 지연 파라미터는 상기 송신 데이터 버퍼가 어드레싱 주소에 대한 송신을 완료해서부터 상기 수신 데이터 버퍼가 판독할 외부 메모리 내의 데이터에 대한 수신을 시작하기 이전에 설정된 타이밍 파라미터이다.
바이트 길이 선택 레지스터(byte_length_sel)는, 상기 상태 스케줄링 제어 모듈 및 상기 수신 데이터 버퍼에 대해 판독 판독할 외부 메모리의 각 그룹의 데이터의 데이터 길이를 구성하되, 상기 데이터 길이는 판독할 외부 메모리의 1배치의 데이터가 속한 분할 그룹의 그룹 번호와 매칭되는 바, 예를 들어 구역별로 그룹 번호가 1인 한 그룹 데이터의 데이터 길이, 그룹 번호가 2인 한 그룹 데이터의 데이터 길이 및 그룹 번호가 3인 한 그룹 데이터의 데이터 길이가 저장된다. 본 실시예는 데이터 길이를 1 내지 32 바이트로 구성하므로, 판독할 외부 메모리에서 1 내지 32 바이트의 데이터를 판독할 때마다 각 데이터의 바이트 길이의 합으로 이해할 수 있으며, 하나의 바이트 길이는 8 비트일 수 있다. 본 실시예는 데이터 판독의 그룹핑 상황에 따라 바이트 길이 선택 레지스터를 3가지 유형의 바이트 길이 선택 레지스터(addr_search_0, addr_search_1 또는 addr_search_2)로 분할한다.
그룹 간격 시간 레지스터(group_time_num)는, 상기 상태 스케줄링 제어 모듈 및 상기 수신 데이터 버퍼에 대해 그룹 지연 파라미터를 구성하되, 상기 그룹 지연 파라미터는 판독할 외부 메모리 중 인접한 두 그룹의 데이터를 판독하는 시간 간격 파라미터이고, 인접한 두 그룹 데이터의 주소에 연속적으로 액세스하는 지연 파라미터이기도 하다.
최대 그룹 수 레지스터(group_num)는, 상기 자동 판독 제어 시스템에 대해 판독할 외부 메모리의 각 라운드에서 판독될 데이터의 최대 그룹 수를 구성하고; 바람직하게는, 센서 데이터 판독을 가동하기 이전에, 본 실시예에서, 상기 자동 판독 제어 시스템은 한 라운드의 데이터 판독 조작에서 최대 3개 그룹의 상이한 타깃 주소를 어드레싱하도록 소프트웨어에 의해 구성된다.
재판독 대기 시간 레지스터(next_time_num)는, 상기 자동 판독 제어 시스템에 대해 재판독 지연 파라미터를 구성하되, 상기 재판독 지연 파라미터는 상기 수신 데이터 버퍼가 현재 라운드에서 판독할 외부 메모리의 데이터에 대한 수신을 완료해서부터 상기 수신 데이터 버퍼가 다음 라운드의 판독할 외부 메모리 내의 데이터에 대한 수신을 시작하기 이전에 설정된 타이밍 파라미터이다.
설명해야 할 점은, 전술한 실시예 중의 상기 타이밍 임계 파라미터는 판독 대기 시간 레지스터에 의해 구성된 판독 지연 파라미터, 그룹 간격 시간 레지스터에 의해 구성된 그룹 지연 파라미터 및 재판독 대기 시간 레지스터에 의해 구성된 재판독 지연 파라미터를 포함하고; 상기 데이터 길이 임계 파라미터는 바이트 길이 선택 레지스터에 의해 구성된 데이터 길이 및 최대 그룹 수 레지스터에 의해 구성된 최대 그룹 수를 포함한다.
종래 기술과 비교하여, 본 발명에 개시된 상기 레지스터 그룹 모듈은 센서 데이터의 판독 정보를 유연하게 구성하도록 지원하는 바, 전술한 판독 대기 시간 레지스터(wait_time_num), 그룹 간격 시간 레지스터(group_time_num) 및 재판독 대기 시간 레지스터(next_time_num)를 통해 센서 데이터 판독 과정의 상이한 타이밍 요구 사항을 원활하게 구성하고, SPI 인터페이스 컨트롤러의 직렬 통신 속도에 대한 제어를 완료함으로써, 상이한 판독 빈도의 요구 사항을 충족시키고; 주소 선택 레지스터(addr_search_sel) 및 최대 그룹 수 레지스터(group_num)는 여러 그룹의 상이한 타깃 주소에 액세스할 수 있는 효과를 구현하여 다양한 데이터 정보를 리프레싱하는 효율을 향상시킨다.
구체적으로, 도 1에 도시된 바와 같이, 상기 카운트 신호 생성 모듈은 그룹 카운터(group_cnt), 판독 대기 카운터(wait_time_cnt), 바이트 카운터(byte_cnt), 그룹 간격 카운터(group_time_cnt) 및 재판독 대기 카운터(next_time_cnt)를 포함한다.
그룹 카운터(group_cnt)는, 상기 수신 데이터 버퍼가 현재 판독 중인 판독할 외부 메모리의 데이터가 속한 그룹 번호를 카운트하여 출력하되, 그룹 카운터(group_cnt)의 카운트 값은 0, 1 및 2가 바람직하고, 3개 그룹의 상이한 어드레싱 주소, 3개 그룹의 상이한 어드레싱 주소 길이 및 3개 그룹의 상이한 데이터 판독 길이를 구성할 수 있다. 따라서 상기 수신 데이터 버퍼는 판독할 외부 메모리의 데이터를 상기 타깃 주소 및 상기 소스 주소의 구성에 따라 그룹별로 판독한다.
판독 대기 카운터(wait_time_cnt)는, 상기 송신 데이터 버퍼가 어드레싱 주소에 대한 송신을 완료한 후, 상기 수신 데이터 버퍼가 데이터에 대한 수신을 시작하기 이전에, 카운트 값이 상기 판독 지연 파라미터에 도달할 때까지 카운트 조작을 유지하는 바, 즉 판독 대기 시간 레지스터(wait_time_num)의 구성값까지 카운트된 후, 제로 클리어링한다.
바이트 카운터(byte_cnt)는, 상기 수신 데이터 버퍼에 의해 판독된 각 데이터의 바이트 길이를 카운트하는 바, 즉 판독된 데이터의 바이트 수를 통계하고, 카운트 값이 상기 바이트 길이 선택 레지스터(byte_length_sel)에 의해 구성된, 그룹 카운터(group_cnt)의 현재 카운트 값에 대응되는 그룹 번호의 한 그룹 데이터의 데이터 길이(그룹 번호와 매칭)에 도달할 때마다 제로 클리어링한다. 유의해야 할 점은, 상기 데이터 길이는 한 그룹 데이터의 바이트 길이의 합이고, 바이트 카운터(byte_cnt)는 8 비트가 카운트될 때마다 하나의 바이트 길이가 카운트된 것으로 계산한다. 바이트 카운터(byte_cnt)는 판독할 외부 메모리 내 각 그룹 데이터의 데이터 길이를 결정하기 위한 카운트 신호를 생성한다.
그룹 간격 카운터(group_time_cnt)는, 카운트 값이 상기 그룹 지연 파라미터에 도달할 때까지 상기 수신 데이터 버퍼에 의해 인접한 두 그룹의 데이터를 판독하는 사이에서 카운트 조작을 유지하는 바, 즉 상기 그룹 간격 시간 레지스터(group_time_num)에 의해 구성된 그룹 지연 파라미터까지 카운트된 후, 제로 클리어링한다.
재판독 대기 카운터(next_time_cnt)는, 상기 자동 판독 제어 시스템이 현재 라운드의 판독할 외부 메모리의 데이터에 대한 판독을 완료해서부터 다음 라운드의 판독할 외부 메모리의 데이터에 대한 판독을 시작하기 이전에, 카운트 값이 상기 재판독 지연 파라미터에 도달할 때까지 카운트 조작을 유지하는 바, 즉 상기 재판독 대기 시간 레지스터(next_time_num)에 의해 구성된 상기 재판독 지연 파라미터까지 카운트된 후, 제로 클리어링한다.
전술한 판독 대기 카운터, 그룹 간격 카운터 및 재판독 대기 카운터의 카운트 값의 합, 즉 한 라운드의 판독할 메모리의 데이터의 판독 조작을 수행하기 위해 필요한 대기 지연 파라미터의 합은 판독할 외부 메모리 내 각 그룹 데이터의 판독 빈도를 결정하기 위한 타이밍 신호를 형성한다. 본 실시예에 개시된 상기 카운트 신호 생성 모듈은 주소와 데이터, 인접한 두 그룹 데이터의 주소 간의 액세스 시간 간격을 설정하고, 복수의 타이머를 통해 상이한 판독 빈도의 요구 사항을 충족하며, 센서 데이터에 대한 실시간 자동 리프레싱을 자동으로 구현한다. 전술한 그룹 카운터(group_cnt) 및 바이트 카운터(byte_cnt)에 의해 생성된 타이밍 카운트 정보는 데이터 판독의 바이트 길이/데이터 길이를 구성할 수 있으므로, 외부 센서가 데이터를 그룹별로 판독할 수 있어 더 많은 타깃 주소 상의 데이터 정보를 어드레싱할 수 있다. 설명해야 할 점은, 전술한 실시예에서 상기 상태 머신 컨트롤러의 상기 타이머는 판독 대기 카운터, 그룹 간격 카운터 및 재판독 대기 카운터를 포함하고; 상기 상태 머신 컨트롤러의 상기 카운터는 그룹 카운터 및 바이트 카운터를 포함한다.
바람직하게는, 상기 자동 판독 제어 시스템은 한 라운드의 상기 판독할 외부 메모리의 데이터에 대한 판독 및 액세스 과정에서, 3개 그룹의 상이한 타깃 주소에 대한 어드레싱을 지원하므로 데이터 판독 효율이 향상된다.
자이로스코프 및 광학 유량계와 같은 센서의 데이터 판독 과정은 모두 기본적으로 일치한 바, 모두 먼저 어드레싱 주소를 송신한 후 데이터를 판독한다. 본 발명의 실시예는 하나의 상태 머신을 적용하여 관련 제어 과정을 구현하는 바, 상태 머신의 상태 코드는 시스템 회로의 디코딩 논리를 어느 정도 단순화하는 원-핫 코드인 것이 바람직하다. 본 실시예에서 설정한 상기 상태 스케줄링 제어 모듈은 상태 머신에 대응되고, 상태 머신은 각 상태에서 구성이 필요한 상기 다양한 레지스터, 타이머 및/또는 카운터로 점프하여 실행될 수 있다. 상태 점프 스케줄링 단계는 다를 수 있지만 점프 조건은 이러한 소자의 지원과 분리될 수 없다. 상태 머신에는 상기 상태 스케줄링 제어 모듈에 포함된 6개의 서브 모듈에 각각 대응되는 하기 총 6개의 상태가 존재한다. 아이들 상태(IDLE)는 리셋 작업 서브 모듈에 의해 제어되고, 송신 어드레싱 상태(SEND_ADDR)는 어드레싱 주소 구성 송신 서브 모듈에 의해 제어되며, 데이터 판독 대기 상태(READ_WAIT)는 판독 대기 제어 서브 모듈에 의해 제어되고, 데이터 판독 수신 상태(READ_DATA)는 데이터 판독 제어 서브 모듈에 의해 제어되며, 그룹 판독 간격 대기 상태(GROUP_GAP)는 그룹 간 판독 제어 서브 모듈에 의해 제어되고, 데이터 판독 완료 상태(READ_OVER)는 데이터 판독 완료 제어 서브 모듈에 의해 제어된다. 따라서, 상태 스케줄링 제어 모듈은 레지스터 그룹 모듈의 구성 정보 및 카운트 신호 생성 모듈의 카운트 타이밍 정보에 따라, 상기 자동 판독 제어 시스템이 판독할 외부 메모리의 데이터를 자동으로 판독하는 스케줄링 동작 및 작업 상태를 생성함으로써, 상기 자동 판독 제어 시스템은 소정의 시간 간격에 따라 판독할 외부 메모리 중 상이한 그룹 데이터를 자동으로 판독한다.
설명해야 할 점은, 본 발명의 실시예에서 언급된 상태 머신은 상태 레지스터와 조합 논리 카운트 회로로 구성되고, 제어 신호에 따라 미리 설정된 상태로 상태 전이를 수행할 수 있으며, 관련 신호 동작을 스케줄링하고, 특정 조작을 완료하는 제어 센터이다. 본 실시예는 상기 자동 판독 제어 시스템 내부의 관련 모듈, 특히 상기 상태 머신 컨트롤러에 포함된 레지스터 그룹 모듈, 카운트 신호 생성 모듈 및 상태 스케줄링 제어 모듈에서 데이터 판독에 관련된 제어 논리를 유한한 수의 안정적인 상태로 분해하고 각 상태에서 이벤트를 판단하며 연속 처리를 하드웨어 회로의 작업 특징에 맞는 이산 디지털 처리로 변경한다.
아이들 상태(IDLE)은 시스템의 기본 상태이며, 시스템은 파워 온 및 리셋되는 경우 해당 상태로 진입한다. 리셋 작업 서브 모듈은 상기 자동 판독 제어 시스템을 파워 온 및 리셋한 후, 상기 인에이블 제어 레지스터에 따라 리셋 정보를 구성하고; 인에이블 제어 레지스터(auto_read_en)가 1로 설정되면, SEND_ADDR 상태로 점프하여 어드레싱 주소 구성 송신 서브 모듈을 작업을 시작하도록 스케줄링한다.
어드레싱 주소 구성 송신 서브 모듈은 상기 주소 길이 선택 레지스터 addr_len_sel, 상기 주소 선택 레지스터(addr_search)의 구성 정보 및 상기 그룹 카운터(group_cnt)의 카운트 정보에 따라 상기 자동 판독 제어 시스템이 송신 어드레싱 상태(SEND_ADDR)에서 작동되도록 한다. 송신 어드레싱 상태(SEND_ADDR)에서, 어드레싱 주소 구성 송신 서브 모듈은 분할된 상이한 그룹 데이터에 적응되도록, 상기 그룹 카운터(group_cnt)의 카운트 값에 대응되는 그룹 번호에 따라 상기 주소 길이 선택 레지스터 addr_len_sel에서 상기 그룹 번호와 매칭되는 한 그룹 데이터의 어드레싱 주소 길이를 선택하고, 어드레싱 주소 구성 송신 서브 모듈은 상기 그룹 카운터(group_cnt)의 카운트 작용을 통해 3개 그룹 주소 길이 선택 레지스터(addr_length_0, addr_length_1 또는 addr_length_2) 중 상기 그룹 카운터(group_cnt)의 현재 카운트 값과 매칭되는 한 그룹으로 설정될 수 있는데, 구체적으로는 group_cnt 카운트가 0인 경우, 즉 대응되는 그룹 번호가 0이면, addr_length_sel은 주소 길이 선택 레지스터 addr_length_0을 선택하고; group_cnt 카운트가 1인 경우, 즉 대응되는 그룹 번호가 1이면, addr_length_sel은 addr_length_1을 선택하며; group_cnt 카운트가 2인 경우, 즉 대응되는 그룹 번호가 2이면, addr_length_sel은 addr_length_2를 선택한다. 설명해야 할 점은, 전술한 각 그룹의 주소 길이 선택 레지스터에 의해 구성된 어드레싱 주소 길이 상이한 바, 예를 들어, addr_length_sel이 0이면, 8bit 어드레싱 주소를 송신하고; addr_length_sel이 1이면, 16bit 어드레싱 주소를 송신함으로써, 어드레싱 주소 구성 송신 서브 모듈에 의해 선택된 어드레싱 주소 길이 타입이 유연하고 제어 가능하며, 자이로스코프 및 광류 센서와 같은 상이한 모델의 센서와 호환될 수 있다. 동시에 상기 그룹 카운터(group_cnt)의 카운트 값에 대응되는 그룹 번호에 따라, 어드레싱 주소 구성 송신 서브 모듈은 상기 주소 선택 레지스터(addr_search)에서 상기 그룹 번호와 매칭되는 한 그룹 데이터의 어드레싱 주소를 선택하고, 상기 그룹 카운터(group_cnt)의 카운트 작용을 통해 어드레싱 주소 구성 송신 서브 모듈은 3개 그룹의 상기 주소 선택 레지스터(addr_search_0, addr_search_1 또는 addr_search_2) 중 상기 그룹 카운터(group_cnt)의 현재 카운트 값과 매칭되는 한 그룹으로 설정될 수 있는데, 구체적으로는 group_cnt 카운트가 0인 경우, 즉 대응되는 그룹 번호가 0이면, addr_search_sel은 상기 주소 선택 레지스터(addr_search_0)을 선택하고; group_cnt 카운트가 1인 경우, 즉 대응되는 그룹 번호가 1이면, addr_search_sel은 addr_search_1을 선택하며; group_cnt 카운트가 2인 경우, 즉 대응되는 그룹 번호가 2이면, addr_search_sel은 addr_search_2를 선택한다. 상기 각 그룹의 주소 선택 레지스터에 의해 선택된 어드레싱 주소는 상이하다. 상기 어드레싱 주소 구성 송신 서브 모듈은 상기 주소 길이 선택 레지스터 addr_len_sel과 상기 주소 선택 레지스터(addr_search)의 구성값을 업데이트하고, 주소 재로드 제어 신호(load_addr)를 1로 설정하며, 상기 주소 선택 레지스터(addr_search_sel) 중의 어드레싱 주소를 상기 송신 데이터 버퍼에 송신함으로써, 상기 송신 데이터 버퍼는 상기 SPI 인터페이스 모듈을 통해 판독할 외부 메모리를 판독하기 위한 어드레싱 주소를 송신하고; 상기 송신 데이터 버퍼는 상기 어드레싱 주소 데이터를 송신한 후, 데이터 판독 대기 상태(READ_WAIT)로 점프하여 상기 판독 대기 제어 서브 모듈을 가동하여 작업을 시작하도록 스케줄링하되, 여기서, 상기 어드레싱 주소 및 어드레싱 주소 길이는 데이터가 속한 그룹 번호에 따라 상이하다.
판독 대기 제어 서브 모듈은 상기 판독 대기 시간 레지스터(wait_time_num) 및 바이트 길이 선택 레지스터(byte_length_sel)의 구성 정보, 그룹 카운터(group_cnt) 및 판독 대기 카운터(wait_time_cnt)의 카운트 정보에 따라, 상기 자동 판독 제어 시스템이 데이터 판독 대기 상태(READ_WAIT)에서 작동되도록 한다. 데이터 판독 대기 상태(READ_WAIT)에서, 판독 대기 제어 서브 모듈은 상기 판독 대기 카운터를 가동하여 상기 자동 판독 제어 시스템이 어드레싱 주소의 송신 완료로부터 데이터 수신까지의 시간 지연을 카운트하고, 상기 판독 대기 카운터(wait_time_cnt)의 카운트 값이 상기 판독 지연 파라미터에 도달하면, 즉 판독 대기 시간 레지스터(wait_time_num)에 의해 구성된 타이밍 파라미터와 동일하면, 이는 카운트 시간미 만료되었음을 의미하므로 상기 판독 대기 카운터(wait_time_cnt)를 제로 클리어링한 후, 데이터 판독 수신 상태(READ_DATA)에 진입하도록 스케줄링하며, 데이터 판독 제어 서브 모듈을 작업을 가동하도록 제어함으로써 주소와 데이터 간의 시간 간격을 생성한다.
마찬가지로 데이터 판독 대기 상태(READ_WAIT)에서, 상기 판독 대기 카운터의 카운트 값이 상기 판독 지연 파라미터에 도달하기 이전에, 상기 바이트 길이 선택 레지스터에서 상기 그룹 카운터의 현재 카운트 값과 매칭되는 한 그룹 데이터의 데이터 길이를 선택하고, 상기 바이트 길이 선택 레지스터(byte_length_sel)의 구성값을 업데이트하여 상태 머신의 리소스 이용률이 향상된다. 상기 판독 대기 제어 서브 모듈은 또한 상기 그룹 카운터(group_cnt)의 카운트 값에 대응되는 그룹 번호에 따라, 상기 바이트 길이 선택 레지스터(byte_length_sel)을 3개 그룹의 바이트 길이 선택 레지스터 byte_length_0, byte_length_1 또는 byte_length_2 중 상기 그룹 카운터(group_cnt)의 현재 카운트 값과 매칭되는 한 그룹으로 설정될 수 있는데, 구체적으로, group_cnt = 0일 때, byte_length_sel = byte_length_0이고; group_cnt = 1일 때, byte_length_sel = byte_length_1이며; group_cnt = 2일 때, byte_length_sel = byte_length_2이다. 설명해야 할 점은, 본 실시예의 상이한 데이터 길이는 byte_length_0, byte_length_1 또는 byte_length_2와 같은 대응되는 바이트 길이 선택 레지스터에 저장될 수 있다.
데이터 판독 제어 서브 모듈은 바이트 길이 선택 레지스터(byte_length_sel)의 구성 정보 및 바이트 카운터(byte_cnt) 및 그룹 카운터(group_cnt)의 카운트 정보에 따라 상기 자동 판독 제어 시스템이 데이터 판독 수신 상태(READ_DATA)에서 작동되도록 한다. 데이터 판독 수신 상태(READ_DATA)에서, 상기 바이트 카운터(byte_cnt)를 가동하여 상기 수신 데이터 버퍼에 의해 판독된 각 그룹 데이터의 바이트 길이의 합, 즉 상기 수신 데이터 버퍼에 의해 판독된 데이터 중의 하나의 바이트 길이를 카운트하고, 바이트 카운터(byte_cnt)의 카운트 값에 1을 가하며, 상기 바이트 카운터가 상기 바이트 길이 선택 레지스터에 의해 구성된, 상기 그룹 카운터의 현재 카운트 값과 매칭되는 한 그룹 데이터의 데이터 길이까지 카운트할 때마다(group_cnt = 0일때, byte_length_sel = byte_length_0; group_cnt = 1일 때, byte_length_sel = byte_length_1; group_cnt = 2일 때, byte_length_sel = byte_length_2 중 하나가 포함됨), 이는 한 그룹의 데이터에 대한 판독이 완료되었음을 의미하므로, 상기 그룹 카운터(group_cnt)의 카운트 값에 1을 가하도록 제어하고, 상기 바이트 카운터(byte_cnt)를 제로 클리어링함으로써, 상기 상태 스케줄링 제어 모듈이 상기 수신 데이터 버퍼를 판독할 외부 메모리의 현재 한 그룹 데이터에 대한 판독을 종료하도록 하고 판독할 외부 메모리의 다음 그룹 데이터에 대한 판독을 시작하도록 제어한 후, 그룹 판독 간격 대기 상태(GROUP_GAP)로 진입하도록 스케줄링하며, 그룹 간 판독 제어 서브 모듈의 작업을 가동하여 동일한 그룹 데이터의 바이트 간의 전환 효과를 구현한다. 1 바이트 길이의 데이터를 상기 수신 데이터 버퍼로 판독할 때마다 범용 DMA 컨트롤러의 제어 작용하에 SPI 인터페이스 모듈을 통해 외부 소프트웨어에 전송되어 소프트웨어가 센서의 데이터를 리프레싱하도록 한다.
그룹 간 판독 제어 서브 모듈은 그룹 간격 시간 레지스터(group_time_num) 및 최대 그룹 수 레지스터(group_num)의 구성 정보 및 그룹 카운터(group_cnt) 및 그룹 간격 카운터(group_time_cnt)의 카운트 정보에 따라, 상기 자동 판독 제어 시스템이 그룹 판독 간격 대기 상태(GROUP_GAP)에서 작동되도록 한다. 상기 그룹 카운터(group_cnt)는 상기 상태에서 여전히 카운트 조작을 유지하고, 상기 그룹 카운터(group_cnt)의 카운트 값이 상기 최대 그룹 수 레지스터(group_num)에 의해 구성된 현재 라운드의 판독될 데이터의 최대 그룹 수에 도달하면, 즉 상기 자동 판독 제어 시스템이 판독할 외부 메모리에서 한 라운드의 판독 조작 중의 모든 그룹 데이터를 완전히 판독한 것으로 판단하면, 상기 그룹 카운터(group_cnt)의 카운트 값을 제로 클리어링한 후, 데이터 판독 완료 상태(READ_OVER)에 진입하도록 스케줄링하며, 데이터 판독 완료 제어 서브 모듈이 작업을 가동하도록 제어하는 동시에 상기 자동 판독 제어 시스템에 의해 송신된 인터럽션 요청 신호(auto_read_int)를 1로 설정하여 CPU에 현재 라운드의 모든 그룹 센서 데이터에 대한 판독을 완료하였음을 통지한다. 한 라운드의 판독 조작 과정에서 판독할 외부 메모리의 모든 그룹 데이터를 완전히 판독하지 못한 경우, 상기 그룹 간격 카운터(group_time_cnt)를 카운트를 가동하도록 제어하고, 상기 그룹 간격 카운터(group_time_cnt)의 카운트 값이 상기 그룹 간격 시간 레지스터(group_time_num)에 의해 구성된 상기 그룹 지연 파라미터에 도달하면, 이는 인접한 두 그룹 데이터를 판독하는 대기 시간이 만료되었음을 의미하므로, 그룹 간격 카운터(group_time_cnt)를 제로 클리어링하고, 송신 어드레싱 상태(SEND_ADDR)에 진입하도록 스케줄링하며, 판독할 외부 메모리의 다음 그룹 데이터에 대한 판독을 준비하기 위해 어드레싱 주소 구성 송신 서브 모듈을 작업 상태에 다시 진입하도록 한다. 따라서 상이한 그룹 데이터 간의 판독 전환 제어 효과를 생성하는 동시에 데이터 판독의 시간 간격 및 주소와 주소 간의 시간 간격도 생성한다.
데이터 판독 완료 제어 서브 모듈은 재판독 대기 시간 레지스터(next_time_num)의 구성 정보 및 그룹 카운터(group_cnt) 및 재판독 대기 카운터(next_time_cnt)의 카운트 정보에 따라, 상기 자동 판독 제어 시스템이 데이터 판독 완료 상태(READ_OVER)에서 작동되도록 한다. 데이터 판독 완료 제어 서브 모듈은 상기 재판독 대기 카운터(next_time_cnt)의 타이밍 카운트를 가동하고, 지연 대기 파라미터를 설정하여 현재 라운드의 판독할 외부 메모리의 데이터 판독 조작을 종료하도록 하며, 상기 재판독 대기 카운터(next_time_cnt)의 카운트 값이 상기 재판독 대기 시간 레지스터(next_time_num)에 의해 구성된 상기 재판독 지연 파라미터에 도달하면, 이는 지연 대기 시간이 만료되었음을 의미하므로, 재판독 대기 카운터(next_time_cnt)를 제로 클리어링한 후, 아이들 상태(IDLE)에 진입하도록 스케줄링하고, 다음 라운드의 판독할 외부 메모리의 데이터에 대한 판독 조작을 시작하기 위해 상기 리셋 작업 서브 모듈을 작업 상태에 다시 진입하도록 제어한다. 따라서 판독 조작 종료를 위한 시간 지연 효과를 생성한다. 본 실시예에서, 데이터 판독 완료 제어 서브 모듈, 그룹 간 판독 제어 서브 모듈 및 판독 대기 제어 서브 모듈은 지연 카운트를 제어하여 상기 SPI 인터페이스 모듈이 주기적으로 데이터를 리프레싱하고 판독하는 기능을 구현한다.
본 실시예에서, 상기 상태 스케줄링 제어 모듈, 상기 레지스터 그룹 모듈 및 상기 카운트 신호 생성 모듈은 하나의 상태 머신 시스템을 구성하고, 상기 상태 스케줄링 제어 모듈의 스케줄링 동작 및 작업 상태를 기반으로, 센서 데이터 판독을 가동한 후, 인에이블 제어 레지스터(auto_read_en)를 1로 설정하고, 미리 자체 정의 및 구성된 각 그룹의 상이한 어드레싱 주소(addr_search_0, addr_search_1, addr_search_2), 어드레싱 주소 길이(addr_length_0, addr_length_1, addr_length_2), 데이터 판독 길이(byte_length_0, byte_length_1, byte_length_2)를 자동으로 선택하며, 관련 레지스터 주소를 프로그래밍 가능하게 구성한 후, 카운터 구동 상태 머신과 결부하여 지연 송신 기능을 제어한다. 상술한 하드웨어 가속 데이터 판독 수단을 이용하여 SPI 인터페이스를 통해 센서 데이터를 지속적으로 자동으로 판독함으로써, 상기 자동 판독 제어 시스템은 소정의 시간 간격에 따라 판독할 외부 메모리 중 상이한 그룹 데이터를 자동으로 판독으로 판독하며, 소프트웨어는 더 이상 데이터 판독 과정에 참여할 필요가 없으므로 데이터 판독 효율이 효과적으로 향상된다.
전술한 실시예에서, 상기 송신 데이터 버퍼 및 상기 수신 데이터 버퍼는 모두 선입선출 큐인 바, 즉 상기 송신 데이터 버퍼는 송신 FIFO이고, 상기 수신 데이터 버퍼는 수신 FIFO이며; 상기 주소 선택 레지스터에 의해 가장 먼저 송신된 어드레싱 주소는 상기 송신 데이터 버퍼에 가장 먼저 저장되고, 상기 송신 데이터 버퍼의 헤드에 저장된 어드레싱 주소는 판독할 외부 메모리에 가장 먼저 송신되며; 상기 수신 데이터 버퍼는 판독할 외부 메모리의 가장 먼저 판독될 데이터를 가장 먼저 저장하고, 상기 수신 데이터 버퍼의 헤드에 저장된 데이터는 범용 DMA 컨트롤러의 제어 작용하에 외부 데이터 메모리에 가장 먼저 송신된다. 본 실시예는 CPU 또는 DMA의 의존성을 줄이고, 센서의 각 그룹데이터의 자동 전송을 제어하며, 각 라운드의 데이터 판독 조작 과정에서 여러 그룹의 상이한 타깃 주소에 액세스할 수 있으므로, 센서의 다양한 데이터 정보를 보다 효율적으로 판독할 수 있으며, 다양한 센서, 버스 인터페이스 기기에도 적응된다.
본 발명은 또한 상기 자동 판독 제어 시스템 기반의 자동 판독 제어 방법을 제공한다. 상기 자동 판독 제어 방법은 하드웨어 가속 기반의 SPI 인터페이스의 자동 판독 제어 시스템에 적용되며, 상기 자동 판독 제어 시스템은 CPU 및 판독할 외부 메모리에 각각 연결되고, 자동 판독 제어 시스템은 범용 SPI 인터페이스 모듈, 범용 APB 인터페이스 모듈, 범용 DMA 컨트롤러, 상태 머신 컨트롤러, 송신 데이터 버퍼 및 수신 데이터 버퍼를 포함하며; 상기 자동 판독 제어 방법은, APB 버스 타이밍에 따라 CPU에 의해 전송된 구성 정보를 수신하는 단계 A; 상태 머신 컨트롤러의 내부 구동 소스의 카운트 신호 구동하에, 구성 정보와 결부하여 해당 작업 상태를 스케줄링하며, 수신 데이터 버퍼를 각 라운드 판독 조작에서 먼저 송신 데이터 버퍼에 판독할 외부 메모리 내 상이한 그룹 데이터의 어드레싱 주소를 송신하도록 제어한 후, 스케줄링된 해당 작업 상태와 결부하여 수신 데이터 버퍼를 소정의 판독 빈도에 따라 DMA 컨트롤러를 통해 판독할 외부 메모리 내의 데이터를 배치로 판독하도록 제어하는 단계 B; 및 한 라운드의 판독할 외부 메모리의 데이터에 대한 판독을 완료한 후, 인터럽션 신호를 생성하여 데이터 판독이 완료되었음을 CPU에 통지하는 단계 C를 포함하되; 각 라운드의, 판독할 외부 메모리로부터의 1배치의 데이터 판독은 모두 레지스터 그룹 모듈 구성 정보에 따라 상이한 그룹으로 분할되며, 각 그룹의 데이터에 구성된 타깃 주소 및 소스 주소는 모두 상이하다. 상기 기술적 해결수단을 통해 하드웨어 시스템은 배치로 외부 메모리 내의 판독할 데이터를 빈도적으로 판독할 수 있으므로 CPU 쿼리 빈도를 절약하고, 데이터 전송 과정을 가속화하며, 또한 소프트웨어 실행 유창성을 향상시키고 소프트웨어 및 하드웨어 협업 가속 효율을 향상시킨다.
구체적으로, 상기 상태 머신 컨트롤러 내부의 레지스터는 인에이블 제어 레지스터, 주소 길이 선택 레지스터, 주소 선택 레지스터, 바이트 길이 선택 레지스터, 최대 그룹 수 레지스터, 판독 대기 시간 레지스터, 그룹 간격 시간 레지스터 및 재판독 대기 시간 레지스터를 포함하고; 상기 상태 머신 컨트롤러 내부의 카운터는 상기 그룹 카운터, 상기 판독 대기 카운터, 상기 바이트 카운터, 상기 최대 그룹 수 레지스터, 상기 그룹 간격 카운터 및 상기 재판독 대기 카운터를 포함한다. 이들의 신호 연결은 전술한 실시예를 참조할 수 있다.
도 2에 도시된 바와 같이, 상기 단계 B는 구체적으로, 상기 인에이블 제어 레지스터가 하이 레벨로 설정되었는지 여부를 판단하여 하이 레벨로 설정되면 단계 S2로 진입하고, 그렇지 않으면 상기 자동 판독 제어 시스템이 파워 온 및 리셋 상태를 유지하는 단계 S1; 상기 주소 길이 선택 레지스터에서 상기 그룹 카운터의 현재 카운트 값과 매칭되는 한 그룹 데이터의 어드레싱 주소 길이를 선택하는 동시에 상기 주소 선택 레지스터에서 상기 그룹 카운터의 현재 카운트 값과 매칭되는 그룹 데이터의 어드레싱 주소를 선택하며, 상기 주소 길이 선택 레지스터 및 상기 주소 선택 레지스터가 구성을 완료한 후, 상기 주소 선택 레지스터 중의 어드레싱 주소를 상기 송신 데이터 버퍼에 송신함으로써, 상기 송신 데이터 버퍼가 상기 SPI 인터페이스 모듈을 통해 판독할 외부 메모리를 판독하기 위한 어드레싱 주소를 송신하고; 상기 송신 데이터 버퍼가 상기 어드레싱 주소의 송신을 완료한 후, 단계 S3에 진입하는 단계 S2; 상기 판독 대기 카운터를 가동하여 상기 자동 판독 제어 시스템이 어드레싱 주소의 송신 완료로부터 데이터 수신까지의 시간 지연을 카운트하는 동시에 상기 바이트 길이 선택 레지스터에서 상기 그룹 카운터의 현재 카운트 값과 매칭되는 한 그룹 데이터의 데이터 길이를 선택하고, 상기 판독 대기 카운터의 카운트 값이 상기 판독 지연 파라미터에 도달하면, 상기 판독 대기 카운터를 제로 클리어링한 후 단계 S4로 진입하는 단계 S3; 상기 바이트 카운터를 가동하여 상기 수신 데이터 버퍼에 의해 판독된 각 그룹 데이터의 바이트 길이를 카운트하고, 상기 바이트 카운터가 상기 바이트 길이 선택 레지스터에 의해 구성된, 상기 그룹 카운터의 현재 카운트 값과 매칭되는 한 그룹 데이터의 데이터 길이까지 카운트하면, 상기 그룹 카운터의 카운트 값에 1을 가하도록 제어하며, 상기 바이트 카운터를 제로 클리어링한 후 단계 S5로 진입함으로써, 상기 상태 스케줄링 제어 모듈이 상기 수신 데이터 버퍼를 판독할 외부 메모리의 현재 한 그룹 데이터에 대한 판독을 종료하고 판독할 외부 메모리의 다음 그룹 데이터에 대한 판독을 시작하도록 제어하는 단계 S4; 상기 그룹 카운터의 카운트 값이 상기 최대 그룹 수 레지스터에 의해 구성된 현재 라운드의 판독될 데이터의 최대 그룹 수에 도달하는지 여부를 판단하여 도달하면 상기 그룹 카운터의 카운트 값을 제로 클리어링한 후 단계 S6으로 진입하고; 그렇지 않으면 상기 그룹 간격 카운터를 카운트를 가동하도록 제어하며, 상기 그룹 간격 카운터의 카운트 값이 상기 그룹 지연 파라미터에 도달하는지 여부를 판단하여 도달하면 판독할 외부 메모리의 다음 그룹 데이터에 대한 판독을 준비하기 위해 단계 S2로 돌아가고, 그렇지 않으면 그룹 간격 카운터를 카운트를 유지하도록 제어하는 단계 S5; 및 현재 라운드의 판독할 외부 메모리의 데이터 판독 조작의 종료에 대한 지연 대기를 위해, 상기 재판독 대기 카운터의 카운트를 가동하여 상기 재판독 대기 카운터의 카운트 값이 상기 재판독 지연 파라미터에 도달하면, 상기 재판독 대기 카운터를 제로 클리어링하고, 다음 라운드의 판독할 외부 메모리의 데이터에 대한 판독 조작을 시작하기 위해 단계 S1로 돌아가는 동시에 인터럽션 요청 신호(auto_read_int)를 1로 설정하여 CPU에 현재 라운드의 모든 그룹 센서 데이터에 대한 판독을 완료했음을 통지하는 단계 S6을 포함한다.
설명해야 할 점은, 본 실시예에 개시된 상기 자동 판독 제어 방법은 전술한 상태 머신 작업 상태의 점프 논리를 기반으로 구현되는 직렬 방법 단계이고, 구체적인 타이밍 카운트 파라미터 및 신호 흐름의 기술적 효과는 전술한 시스템의 실시예를 참조할 수 있으며, 여기서 더 이상 설명하지 않는다. 그러나 본 실시예에 개시된 방법 과정은 소프트웨어 코드에 의해 구현될 수 있다. 동시에 전술한 단계 S2 내지 단계 S6, 단계 C는 특정 실시예에서 하드웨어 논리 회로에 로딩될 때 병렬로 조작될 수 있다.
상기 자동 판독 제어 방법은, 상기 주소 선택 레지스터에 의해 가장 먼저 송신된 어드레싱 주소가 상기 송신 데이터 버퍼에 가장 먼저 저장되는 경우, 상기 송신 데이터 버퍼의 헤드에 저장된 어드레싱 주소가 판독할 외부 메모리에 가장 먼저 송신되는 단계; 및 판독할 외부 메모리에서 가장 먼저 판독될 데이터가 상기 수신 데이터 버퍼에 가장 먼저 저장되는 경우, 상기 수신 데이터 버퍼의 헤드에 저장된 데이터는 범용 DMA 컨트롤러의 제어 작용하에 외부 데이터 메모리에 가장 먼저 송신된다.
바람직하게는, 각 라운드 상기 판독할 외부 메모리의 데이터에 대한 판독 및 액세스를 수행하는 과정에서, 3개 그룹의 상이한 타깃 주소에 대한 어드레싱을 지원한다.
마지막으로, 상술한 실시예는 본 발명의 기술적 해결수단을 설명하기 위해 사용된 것일 뿐 이를 제한하지 않는다는 점에 유의해야 한다. 본 발명이 바람직한 실시예를 참조하여 상세하게 설명되었지만, 당업자는 본 발명의 기술적 해결수단의 사상을 벗어나지 않으면서 본 발명의 구체적인 실시형태가 여전히 수정될 수 있거나 일부 기술적 특징이 동등하게 대체될 수 있으며, 이는 모두 본 발명이 보호받고자 하는 기술적 해결수단의 범위에 포함되어야 한다.

Claims (11)

  1. CPU 및 판독할 외부 메모리에 각각 연결되고, SPI 인터페이스 모듈, APB 인터페이스 모듈, 인터럽션 생성 모듈 및 DMA 컨트롤러를 포함하는 하드웨어 가속 기반의 SPI 인터페이스의 자동 판독 제어 시스템으로서,
    상기 자동 판독 제어 시스템은 상태 머신 컨트롤러, 송신 데이터 버퍼 및 수신 데이터 버퍼를 더 포함하되;
    SPI 인터페이스 모듈은, SPI 인터페이스 버스 타이밍에 따라 자동 판독 제어 시스템과 판독할 외부 메모리 간의 데이터 통신을 완료시키며, 송신 데이터 버퍼 및 수신 데이터 버퍼에 각각 판독할 외부 메모리와의 전송 채널을 제공하고;
    APB 인터페이스 모듈은, APB 버스 타이밍에 따라 레지스터 그룹 모듈에 대해 CPU로부터 송신된 구성 정보를 구성하며;
    상태 머신 컨트롤러는, APB 인터페이스 모듈에 의해 전송된 구성 정보를 수신하되, 상태 머신 컨트롤러 내부에는 카운트 신호를 생성하는 구동 소스가 포함되고, 상태 머신 컨트롤러는 내부 구동 소스의 카운트 신호 구동하에, 구성 정보와 결부하여 해당 작업 상태를 스케줄링하며, 각 라운드 판독 조작에서 소정의 판독 빈도에 따라 판독할 외부 메모리 내의 데이터를 배치(batch)로 판독하도록 수신 데이터 버퍼를 제어하고;
    송신 데이터 버퍼는, 레지스터 그룹 모듈에 의해 구성되고 판독할 외부 메모리 데이터에 액세스하여 판독하기 위한 어드레싱 주소를 수신함으로써, 각 라운드의 액세스 및 판독 조작 과정에서, 상기 자동 판독 제어 시스템이 판독할 외부 메모리 내 상이한 그룹 데이터의 타깃 주소 및/또는 소스 주소를 어드레싱하도록 지원하며;
    수신 데이터 버퍼는, DMA 컨트롤러의 제어 작용하에, 상태 머신 컨트롤러에 의해 스케줄링된 작업 상태에 따라 판독할 외부 메모리에서 판독된 데이터를 자동으로 저장하고, 내부에 저장된 데이터를 소프트웨어의 호출을 위해 자동으로 외부 데이터 메모리에 전송하되, 상기 DMA 컨트롤러는, SPI 인터페이스 모듈을 통해 판독할 외부 메모리 내의 데이터를 판독하여 수신 데이터 버퍼에 저장하거나, 수신 데이터 버퍼에서 데이터를 판독하여 외부 데이터 메모리에 저장하고;
    인터럽션 생성 모듈은, 자동 판독 제어 시스템이 판독할 외부 메모리의 데이터에 대한 한 라운드의 판독을 완료한 후, 인터럽션 신호를 생성하여 데이터 판독이 완료되었음을 CPU에 통지하며;
    각 라운드의, 판독할 외부 메모리로부터의 1배치의 데이터 판독은 모두 레지스터 그룹 모듈 구성 정보에 따라 상이한 그룹으로 분할되고, 각 그룹의 데이터는 모두 대응되는 그룹 번호와 매칭되는 것을 특징으로 하는 자동 판독 제어 시스템.
  2. 청구항 1에 있어서,
    상기 상태 머신 컨트롤러는 레지스터 그룹 모듈, 카운트 신호 생성 모듈 및 상태 스케줄링 제어 모듈을 포함하되;
    레지스터 그룹 모듈은, 지연 구성 정보 및 데이터 길이 구성 정보를 포함하여 상기 APB 인터페이스 모듈에 의해 전송된 구성 정보를 수신하며, 상태 스케줄링 제어 모듈, 카운트 신호 생성 모듈, 송신 데이터 버퍼 및 수신 데이터 버퍼에 대해 구성하고;
    카운트 신호 생성 모듈은 타이머 및 카운터를 포함하되, 타이머는 레지스터 그룹 모듈의 지연 구성 정보를 타이밍 임계 파라미터로 사용하여 판독할 외부 메모리 내 각 그룹 데이터의 판독 빈도를 결정하기 위한 타이밍 신호를 카운트하여 생성하며;
    상기 카운터는 레지스터 그룹 모듈의 데이터 길이 구성 정보를 데이터 길이 임계 파라미터로 사용하여 판독할 외부 메모리 내 각 그룹 데이터의 데이터 길이를 결정하기 위한 카운트 신호를 카운트하고;
    상태 스케줄링 제어 모듈은, 레지스터 그룹 모듈의 구성 정보, 카운트 신호 생성 모듈의 카운트 정보 및 타이밍 정보에 따라 상기 자동 판독 제어 시스템이 판독할 외부 메모리의 데이터를 자동으로 판독하는 스케줄링 동작 및 작업 상태를 생성함으로써, 상기 자동 판독 제어 시스템이 소정의 시간 간격에 따라 판독할 외부 메모리 중 상이한 그룹 데이터를 자동으로 판독하도록 하는 것을 특징으로 하는 자동 판독 제어 시스템.
  3. 청구항 2에 있어서,
    상기 레지스터 그룹 모듈은 인에이블 제어 레지스터, 주소 길이 선택 레지스터, 주소 선택 레지스터, 판독 대기 시간 레지스터, 바이트 길이 선택 레지스터, 그룹 간격 시간 레지스터, 최대 그룹 수 레지스터 및 재판독 대기 시간 레지스터를 포함하되;
    인에이블 제어 레지스터는 상기 자동 판독 제어 시스템에 대해 리셋 정보를 구성하고;
    주소 선택 레지스터는 상기 상태 스케줄링 제어 모듈 및 상기 송신 데이터 버퍼에 대해 어드레싱 주소를 구성하되, 상기 어드레싱 주소는 판독할 외부 메모리의 배치 데이터가 속한 분할 그룹의 그룹 번호와 매칭되며;
    주소 길이 선택 레지스터는 상기 상태 스케줄링 제어 모듈 및 상기 송신 데이터 버퍼에 대해 어드레싱 주소 길이를 구성하되, 상기 어드레싱 주소 길이는 판독할 외부 메모리의 배치 데이터가 속한 분할 그룹의 그룹 번호와 매칭되고;
    판독 대기 시간 레지스터는 상기 상태 스케줄링 제어 모듈 및 상기 수신 데이터 버퍼에 대해 판독 지연 파라미터를 구성하되, 상기 판독 지연 파라미터는, 상기 송신 데이터 버퍼가 어드레싱 주소에 대한 송신을 완료해서부터 상기 수신 데이터 버퍼가 판독할 외부 메모리 내의 데이터에 대한 수신을 시작하기 이전에 설정된 타이밍 파라미터이며;
    바이트 길이 선택 레지스터는 상기 상태 스케줄링 제어 모듈 및 상기 수신 데이터 버퍼에 대해 판독할 외부 메모리의 데이터를 판독하는 데이터 길이를 구성하되, 상기 데이터 길이는 판독할 외부 메모리의 배치 데이터가 속한 분할 그룹의 그룹 번호와 매칭되고;
    그룹 간격 시간 레지스터는 상기 상태 스케줄링 제어 모듈 및 상기 수신 데이터 버퍼에 대해 그룹 지연 파라미터를 구성하되, 상기 그룹 지연 파라미터는 판독할 외부 메모리 중 인접한 두 그룹의 데이터를 판독하는 시간 간격 파라미터이며;
    최대 그룹 수 레지스터는 상기 자동 판독 제어 시스템에 대해 판독할 외부 메모리의 각 라운드에서 판독될 데이터의 최대 그룹 수를 구성하고;
    재판독 대기 시간 레지스터는, 상기 자동 판독 제어 시스템에 대해 재판독 지연 파라미터를 구성하되, 상기 재판독 지연 파라미터는 상기 수신 데이터 버퍼가 현재 라운드에서 판독할 외부 메모리의 데이터에 대한 수신을 완료해서부터 상기 수신 데이터 버퍼가 다음 라운드의 판독할 외부 메모리 내의 데이터에 대한 수신을 시작하기 이전에 설정된 타이밍 파라미터이며;
    상기 타이밍 임계 파라미터는 판독 대기 시간 레지스터에 의해 구성된 판독 지연 파라미터, 그룹 간격 시간 레지스터에 의해 구성된 그룹 지연 파라미터 및 재판독 대기 시간 레지스터에 의해 구성된 재판독 지연 파라미터를 포함하고; 상기 데이터 길이 임계 파라미터는 바이트 길이 선택 레지스터에 의해 구성된 데이터 길이 및 최대 그룹 수 레지스터에 의해 구성된 최대 그룹 수를 포함하는 것을 특징으로 하는 자동 판독 제어 시스템.
  4. 청구항 3에 있어서,
    상기 카운트 신호 생성 모듈은 그룹 카운터, 판독 대기 카운터, 바이트 카운터, 그룹 간격 카운터 및 재판독 대기 카운터를 포함하되;
    그룹 카운터는 상기 수신 데이터 버퍼가 현재 판독 중인 판독할 외부 메모리의 데이터가 속한 그룹 번호를 카운트하여 출력하고;
    판독 대기 카운터는 상기 송신 데이터 버퍼가 어드레싱 주소에 대한 송신을 완료해서부터 상기 수신 데이터 버퍼가 데이터에 대한 수신을 시작하기 이전에, 카운트 값이 상기 판독 지연 파라미터에 도달할 때까지 카운트 조작을 유지한 후, 제로 클리어링하며;
    바이트 카운터는, 상기 수신 데이터 버퍼에 의해 판독된 데이터의 바이트 길이를 카운트하고, 카운트 값이 상기 바이트 길이 선택 레지스터에 의해 구성된 그룹 번호와 매칭되는 데이터 길이에 도달할 때마다 제로 클리어링하되, 한 그룹 데이터의 데이터 길이는 해당 그룹 데이터의 바이트 길이의 합이고;
    그룹 간격 카운터는, 카운트 값이 상기 그룹 지연 파라미터에 도달할 때까지 상기 수신 데이터 버퍼에 의해 인접한 두 그룹의 데이터를 판독하는 사이에서 카운트 조작을 유지한 후, 제로 클리어링하며;
    재판독 대기 카운터는, 상기 자동 판독 제어 시스템이 현재 라운드의 판독할 외부 메모리의 데이터에 대한 판독을 완료해서부터 다음 라운드의 판독할 외부 메모리의 데이터에 대한 판독을 시작하기 이전에, 카운트 값이 상기 재판독 지연 파라미터에 도달할 때까지 카운트 조작을 유지한 후 제로 클리어링하고;
    판독 대기 카운터, 그룹 간격 카운터 및 재판독 대기 카운터의 카운트 값의 합은 판독할 외부 메모리 내 각 그룹 데이터의 판독 빈도를 결정하기 위한 타이밍 신호를 형성하며;
    상기 타이머는 판독 대기 카운터, 그룹 간격 카운터 및 재판독 대기 카운터를 포함하고; 상기 카운터는 그룹 카운터 및 바이트 카운터를 포함하는 것을 특징으로 하는 자동 판독 제어 시스템.
  5. 청구항 4에 있어서,
    상기 상태 스케줄링 제어 모듈은 리셋 작업 서브 모듈, 어드레싱 주소 구성 송신 서브 모듈, 판독 대기 제어 서브 모듈, 데이터 판독 제어 서브 모듈, 그룹 간 판독 제어 서브 모듈 및 데이터 판독 완료 제어 서브 모듈을 포함하되;
    리셋 작업 서브 모듈은, 상기 자동 판독 제어 시스템이 파워 온 및 리셋되는 경우, 상기 인에이블 제어 레지스터가 리셋 정보를 구성하도록 제어하고, 어드레싱 주소 구성 송신 서브 모듈을 가동하여 작업을 시작하도록 하고;
    어드레싱 주소 구성 송신 서브 모듈은, 상기 주소 길이 선택 레지스터에서 상기 그룹 카운터의 현재 카운트 값과 매칭되는 한 그룹 데이터의 어드레싱 주소 길이를 선택하는 동시에 상기 주소 선택 레지스터에서 그룹 번호와 매칭되는 어드레싱 주소를 선택하고, 상기 주소 길이 선택 레지스터 및 상기 주소 선택 레지스터가 구성 업데이트를 완료한 후, 상기 주소 선택 레지스터 중의 어드레싱 주소를 상기 송신 데이터 버퍼에 송신함으로써, 상기 송신 데이터 버퍼가 상기 SPI 인터페이스 모듈을 통해 판독할 외부 메모리를 판독하기 위한 어드레싱 주소를 송신하도록 하며; 상기 송신 데이터 버퍼가 상기 어드레싱 주소에 대한 송신을 완료한 후, 판독 대기 제어 서브 모듈을 가동하여 작업을 시작하도록 하고;
    판독 대기 제어 서브 모듈은, 상기 자동 판독 제어 시스템이 어드레싱 주소에 대한 송신을 완료해서부터 데이터의 시간 지연을 수신할 때까지 카운트하도록 상기 판독 대기 카운터를 가동하고, 상기 판독 대기 카운터의 카운트 값이 상기 판독 지연 파라미터에 도달하면, 상기 판독 대기 카운터를 제로 클리어링한 후, 데이터 판독 제어 서브 모듈을 제어하여 작업을 가동하며; 상기 판독 대기 카운터의 카운트 값이 상기 판독 지연 파라미터에 도달하기 이전에, 상기 바이트 길이 선택 레지스터에서 그룹 번호와 매칭되는 데이터 길이를 선택하고;
    데이터 판독 제어 서브 모듈은, 상기 바이트 카운터를 상기 수신 데이터 버퍼에 의해 판독된 각 그룹 데이터의 바이트 길이를 카운트하도록 가동하고, 상기 바이트 카운터가 상기 바이트 길이 선택 레지스터에 의해 구성된 그룹 번호와 매칭되는 데이터 길이까지 카운트하면, 상기 그룹 카운터의 카운트 값에 1을 가하도록 제어하며 상기 바이트 카운터를 제로 클리어링함으로써, 상기 상태 스케줄링 제어 모듈이 상기 수신 데이터 버퍼를 판독할 외부 메모리의 현재 한 그룹 데이터에 대한 판독을 종료하도록 하고 판독할 외부 메모리의 다음 그룹 데이터에 대한 판독을 시작하도록 제어한 후, 그룹 간 판독 제어 서브 모듈의 작업을 가동하며;
    그룹 간 판독 제어 서브 모듈은, 상기 그룹 카운터의 카운트 값이 상기 최대 그룹 수 레지스터에 의해 구성된 현재 라운드의 판독될 데이터의 최대 그룹 수에 도달하면, 상기 그룹 카운터의 카운트 값을 제로 클리어링한 후, 데이터 판독 완료 제어 서브 모듈을 제어하여 작업을 가동하도록 하는 동시에 CPU에 인터럽션 신호를 송신하고; 그렇지 않으면, 상기 그룹 간격 카운터를 제어하여 카운트하도록 가동하며, 상기 그룹 간격 카운터의 카운트 값이 상기 그룹 지연 파라미터에 도달하면, 판독할 외부 메모리의 다음 그룹 데이터에 대한 판독 준비를 위해 어드레싱 주소 구성 송신 서브 모듈을 스케줄링하여 작업 상태에 다시 진입하도록 하고;
    데이터 판독 완료 제어 서브 모듈은, 현재 라운드의 판독할 외부 메모리의 데이터 판독 조작 종료에 대한 지연 대기를 위해 상기 재판독 대기 카운터를 카운트하도록 가동하고, 상기 재판독 대기 카운터의 카운트 값이 상기 재판독 지연 파라미터에 도달하면, 상기 재판독 대기 카운터를 제로 클리어링하며, 다음 라운드의 판독할 외부 메모리의 데이터 판독 조작을 시작하기 위해 리셋 작업 서브 모듈을 스케줄링하여 작업 상태에 다시 진입하도록 하는 것을 특징으로 하는 자동 판독 제어 시스템.
  6. 청구항 2 내지 청구항 5 중 어느 한 항에 있어서,
    상기 송신 데이터 버퍼 및 상기 수신 데이터 버퍼는 모두 선입선출 큐이고;
    상기 주소 선택 레지스터에 의해 가장 먼저 송신된 어드레싱 주소는 상기 송신 데이터 버퍼에 가장 먼저 저장되고, 상기 송신 데이터 버퍼의 헤드에 저장된 어드레싱 주소는 판독할 외부 메모리에 가장 먼저 송신되며;
    상기 수신 데이터 버퍼는 판독할 외부 메모리의 가장 먼저 판독될 데이터를 가장 먼저 저장하고, 상기 수신 데이터 버퍼의 헤드에 저장된 데이터는 DMA 컨트롤러의 제어 작용하에 외부 데이터 메모리에 가장 먼저 송신되는 것을 특징으로 하는 자동 판독 제어 시스템.
  7. 청구항 1 내지 청구항 5 중 어느 한 항에 있어서,
    상기 자동 판독 제어 시스템은 한 라운드의 상기 판독할 외부 메모리의 데이터에 대한 판독 및 액세스 과정에서, 3개 그룹의 상이한 타깃 주소에 대한 어드레싱을 지원하는 것을 특징으로 하는 자동 판독 제어 시스템.
  8. 하드웨어 가속 기반의 SPI 인터페이스의 자동 판독 제어 방법으로서,
    상기 자동 판독 제어 방법은 하드웨어 가속 기반의 SPI 인터페이스의 자동 판독 제어 시스템에 적용되며, 상기 자동 판독 제어 시스템은 CPU 및 판독할 외부 메모리에 각각 연결되고, 자동 판독 제어 시스템은 SPI 인터페이스 모듈, APB 인터페이스 모듈, DMA 컨트롤러, 상태 머신 컨트롤러, 송신 데이터 버퍼 및 수신 데이터 버퍼를 포함하며;
    상기 자동 판독 제어 방법은,
    APB 버스 타이밍에 따라 CPU에 의해 전송된 구성 정보를 수신하는 단계 A;
    상태 머신 컨트롤러의 내부 구동 소스의 카운트 신호 구동하에, 구성 정보와 결부하여 해당 작업 상태를 스케줄링하며, 각 라운드 판독 조작에서 먼저 송신 데이터 버퍼에 판독할 외부 메모리 내 상이한 그룹 데이터의 어드레싱 주소를 송신하도록 수신 데이터 버퍼를 제어한 후, 스케줄링된 대응되는 작업 상태와 결부하여 수신 데이터 버퍼를 소정의 판독 빈도에 따라 DMA 컨트롤러를 통해 판독할 외부 메모리 내의 데이터를 배치로 판독하도록 제어하는 단계 B; 및
    한 라운드의 판독할 외부 메모리의 데이터에 대한 판독을 완료한 후, 인터럽션 신호를 생성하여 데이터 판독이 완료되었음을 CPU에 통지하는 단계 C
    를 포함하되, 각 라운드의, 판독할 외부 메모리로부터의 1배치의 데이터 판독은 모두 레지스터 그룹 모듈 구성 정보에 따라 상이한 그룹으로 분할되며, 각 그룹의 데이터에 구성된 타깃 주소 및 소스 주소는 모두 상이한 것을 특징으로 하는 자동 판독 제어 방법.
  9. 청구항 8에 있어서,
    상기 단계 B는 구체적으로,
    인에이블 제어 레지스터가 하이 레벨로 설정되면 단계 S2로 진입하고, 그렇지 않으면 리셋 상태를 유지하는 단계 S1;
    주소 길이 선택 레지스터에서 그룹 카운터의 현재 카운트 값과 매칭되는 어드레싱 주소 길이를 선택하는 동시에 주소 선택 레지스터에서 그룹 카운터의 현재 카운트 값과 매칭되는 어드레싱 주소를 선택하며, 주소 길이 선택 레지스터 및 주소 선택 레지스터가 구성 업데이트를 완료한 후, 주소 선택 레지스터 중의 어드레싱 주소를 상기 송신 데이터 버퍼에 송신하고, 상기 송신 데이터 버퍼가 상기 어드레싱 주소의 송신을 완료한 후, 단계 S3에 진입하는 단계 S2;
    판독 대기 카운터를 가동하여 상기 자동 판독 제어 시스템이 어드레싱 주소의 송신 완료로부터 데이터 수신까지의 시간 지연을 카운트하는 동시에 바이트 길이 선택 레지스터에서 그룹 카운터의 현재 카운트 값과 매칭되는 데이터 길이를 선택하고, 판독 대기 카운터의 카운트 값이 판독 대기 시간 레지스터에 의해 구성된 판독 지연 파라미터에 도달하면, 판독 대기 카운터를 제로 클리어링한 후 단계 S4로 진입하는 단계 S3;
    바이트 카운터를 가동하여 상기 수신 데이터 버퍼에 의해 판독된 각 그룹 데이터의 바이트 길이를 카운트하고, 바이트 카운터가 바이트 길이 선택 레지스터에 의해 구성된, 그룹 카운터의 현재 카운트 값과 매칭되는 데이터 길이까지 카운트하면, 그룹 카운터의 카운트 값에 1을 가하도록 제어하며, 바이트 카운터를 제로 클리어링한 후 단계 S5로 진입하는 단계 S4;
    그룹 카운터의 카운트 값이 최대 그룹 수 레지스터에 의해 구성된 현재 라운드의 판독될 데이터의 최대 그룹 수에 도달하는지 여부를 판단하여 도달하면 그룹 카운터의 카운트 값을 제로 클리어링한 후, 단계 S6으로 진입하고; 그렇지 않으면 그룹 간격 카운터를 카운트를 가동하도록 제어하며, 그룹 간격 카운터의 카운트 값이 그룹 간격 시간 레지스터에 의해 구성된 그룹 지연 파라미터에 도달하는지 여부를 판단하여 도달하면 단계 S2로 돌아가고, 그렇지 않으면 그룹 간격 카운터를 카운트를 유지하도록 제어하는 단계 S5; 및
    재판독 대기 카운터의 카운트를 가동하여 재판독 대기 카운터의 카운트 값이 재판독 대기 시간 레지스터에 의해 구성된 재판독 지연 파라미터에 도달하면, 재판독 대기 카운터를 제로 클리어링하고 단계 S1로 돌아가는 단계 S6
    을 포함하되,
    상기 상태 머신 컨트롤러 내부의 레지스터에는 인에이블 제어 레지스터, 주소 길이 선택 레지스터, 주소 선택 레지스터, 바이트 길이 선택 레지스터, 최대 그룹 수 레지스터, 판독 대기 시간 레지스터, 그룹 간격 시간 레지스터 및 재판독 대기 시간 레지스터가 포함되며;
    상기 상태 머신 컨트롤러 내부의 카운터에는 상기 그룹 카운터, 상기 판독 대기 카운터, 상기 바이트 카운터, 상기 최대 그룹 수 레지스터, 상기 그룹 간격 카운터 및 상기 재판독 대기 카운터가 포함되는 것을 특징으로 하는 자동 판독 제어 방법.
  10. 청구항 9에 있어서,
    상기 주소 선택 레지스터에 의해 가장 먼저 송신된 어드레싱 주소가 상기 송신 데이터 버퍼에 가장 먼저 저장되는 경우, 상기 송신 데이터 버퍼의 헤드에 저장된 어드레싱 주소는 판독할 외부 메모리에 가장 먼저 송신되는 단계; 및
    상기 수신 데이터 버퍼가 판독할 외부 메모리에서 가장 먼저 판독될 데이터를 가장 먼저 저장하는 경우, 상기 수신 데이터 버퍼의 헤드에 저장된 데이터는 상기 DMA 컨트롤러의 제어 작용하에 외부 데이터 메모리에 가장 먼저 송신되는 단계
    를 더 포함하는 것을 특징으로 하는 자동 판독 제어 방법.
  11. 청구항 9에 있어서,
    각 라운드 상기 판독할 외부 메모리의 데이터에 대한 판독 및 액세스를 수행하는 과정에서, 3개 그룹의 상이한 타깃 주소에 대한 어드레싱을 지원하는 것을 특징으로 하는 자동 판독 제어 방법.
KR1020227004006A 2020-03-28 2020-08-24 하드웨어 가속 기반의 spi 인터페이스의 자동 판독 제어 시스템 및 방법 KR20220028120A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202010232675.4 2020-03-28
CN202010232675.4A CN111444123B (zh) 2020-03-28 2020-03-28 基于硬件加速的spi接口的自动读取控制系统及方法
PCT/CN2020/110685 WO2021196507A1 (zh) 2020-03-28 2020-08-24 基于硬件加速的 spi 接口的自动读取控制系统及方法

Publications (1)

Publication Number Publication Date
KR20220028120A true KR20220028120A (ko) 2022-03-08

Family

ID=71649058

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227004006A KR20220028120A (ko) 2020-03-28 2020-08-24 하드웨어 가속 기반의 spi 인터페이스의 자동 판독 제어 시스템 및 방법

Country Status (6)

Country Link
US (1) US11734219B2 (ko)
EP (1) EP4002135A4 (ko)
JP (1) JP7326586B2 (ko)
KR (1) KR20220028120A (ko)
CN (1) CN111444123B (ko)
WO (1) WO2021196507A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111444123B (zh) * 2020-03-28 2021-01-15 珠海市一微半导体有限公司 基于硬件加速的spi接口的自动读取控制系统及方法
CN112131164B (zh) * 2020-09-23 2022-06-17 山东云海国创云计算装备产业创新中心有限公司 应用于加速板卡的数据调度方法、装置及加速板卡和介质
CN112052213B (zh) * 2020-10-10 2022-12-02 乐鑫信息科技(上海)股份有限公司 增强型spi控制器以及操作spi控制器的方法
CN113419985A (zh) * 2021-06-15 2021-09-21 珠海市一微半导体有限公司 Spi系统自动读取数据的控制方法及spi系统
CN114265561A (zh) * 2021-12-24 2022-04-01 上海集成电路装备材料产业创新中心有限公司 一种数据读取控制方法、芯片和介质
CN115858431B (zh) * 2023-02-21 2023-05-30 北京国科环宇科技股份有限公司 数据传输控制方法、控制器及电子设备
CN116962112B (zh) * 2023-09-20 2023-12-15 中国船舶集团有限公司第七〇七研究所 基于标准spi总线连接的双机全双工数据透明传输方法
CN117453288A (zh) * 2023-10-31 2024-01-26 扬州宇安电子科技有限公司 一种基于秒脉冲的多设备同步反演系统及方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6816921B2 (en) * 2000-09-08 2004-11-09 Texas Instruments Incorporated Micro-controller direct memory access (DMA) operation with adjustable word size transfers and address alignment/incrementing
US8456517B2 (en) * 2008-07-09 2013-06-04 Primesense Ltd. Integrated processor for 3D mapping
CN102231143A (zh) * 2011-07-04 2011-11-02 浙江大学 一种安全可复用spi外围接口电路
CN103064805B (zh) * 2012-12-25 2015-12-09 深圳先进技术研究院 Spi控制器及通信方法
CN104021102B (zh) * 2014-05-26 2017-05-24 北京佳讯飞鸿电气股份有限公司 基于状态机和片内总线的cpci串口板及其工作方法
US9734102B2 (en) * 2014-11-04 2017-08-15 Atmel Corporation Data transfer
CN104809094B (zh) * 2015-05-25 2017-11-24 中国电子科技集团公司第四十七研究所 Spi控制器及其通信方法
US10482045B2 (en) * 2016-02-17 2019-11-19 Analog Devices Global Unlimited Company Data communication interface for processing data in low power systems
US10402120B2 (en) * 2016-07-15 2019-09-03 Advanced Micro Devices, Inc. Memory controller arbiter with streak and read/write transaction management
CN207008602U (zh) * 2017-08-08 2018-02-13 鸿秦(北京)科技有限公司 一种基于NandFlash存储器多通道的存储阵列控制装置
CN107589289A (zh) * 2017-09-04 2018-01-16 中国电子科技集团公司第四十研究所 一种基于示波器的spi总线硬件触发与解码方法
CN109117396A (zh) * 2018-08-30 2019-01-01 山东经安纬固消防科技有限公司 存储器访问方法及系统
CN109656850B (zh) * 2018-11-13 2022-07-26 河北汉光重工有限责任公司 采用单片cpld扩展的dsp串口通信电路
CN109933546B (zh) * 2019-01-29 2023-03-10 山东华芯半导体有限公司 一种ssd主控中的raid主动加速装置和加速方法
CN110209613B (zh) * 2019-06-05 2022-01-25 哈尔滨工业大学 一种NVMe SSD读取速度与光纤接口速度自适应匹配方法
CN110456980B (zh) * 2019-08-15 2022-12-02 睦星科技(北京)有限公司 一种用于读取数据的电路、系统及其方法
CN112540795A (zh) * 2019-09-23 2021-03-23 阿里巴巴集团控股有限公司 指令处理装置和指令处理方法
CN111444123B (zh) 2020-03-28 2021-01-15 珠海市一微半导体有限公司 基于硬件加速的spi接口的自动读取控制系统及方法

Also Published As

Publication number Publication date
JP2022546216A (ja) 2022-11-04
EP4002135A4 (en) 2022-11-02
WO2021196507A1 (zh) 2021-10-07
EP4002135A1 (en) 2022-05-25
CN111444123A (zh) 2020-07-24
US20230004517A1 (en) 2023-01-05
JP7326586B2 (ja) 2023-08-15
US11734219B2 (en) 2023-08-22
CN111444123B (zh) 2021-01-15

Similar Documents

Publication Publication Date Title
KR20220028120A (ko) 하드웨어 가속 기반의 spi 인터페이스의 자동 판독 제어 시스템 및 방법
KR100627766B1 (ko) 데이타전송 제어방법과 이것에 사용하는 주변회로, 데이타프로세서 및 데이타 처리시스템
US5511166A (en) Method and apparatus for receive frame sorting in a media access control/host system interface unit
US7054986B2 (en) Programmable CPU/interface buffer structure using dual port RAM
JP2822986B2 (ja) Dma内蔵シングルチップマイクロコンピュータ
CN1570907B (zh) 多处理器系统
JPH0962563A (ja) 共有メモリシステム、並列型処理装置並びにメモリlsi
US20170329632A1 (en) Device scheduling method, task manager and storage medium
JP2002135257A (ja) シリアル通信用データ処理装置
US8954632B2 (en) System method for regulating an input/output interface by sampling during a time duration associated with I/O states
US11662948B2 (en) Norflash sharing
JP2003036169A (ja) 複数の小規模プロセッサによって並列処理を行なうシングルチップマイクロプロセッサ
JP2002152020A (ja) パルス信号生成装置
JP2009163531A (ja) 割り込み管理機構およびマイクロコンピュータ
JP3328638B2 (ja) メモリ装置
WO2002093392A1 (fr) Processeur de donnees
US10078600B2 (en) Apparatus and method for vector-based signal routing
CN113971151A (zh) 串行传输控制器及其数据传输方法
JP2002287987A (ja) タスクの並行処理を実行させるためのプログラム及び並行処理する組込み制御装置及び並行処理方法並びにプログラムが記録されている記録媒体
EP1450255B1 (en) Microcontroller device for complex processing procedures and corresponding interrupt management process
JP4642398B2 (ja) 共有バス調停システム
JP2022134218A (ja) 制御装置およびデータ転送方法
JP2003036248A (ja) シングルチップマイクロプロセッサに用いる小規模プロセッサ
JP2012150656A (ja) 半導体装置
JP2003015943A (ja) 半導体装置