주요 콘텐츠

이 페이지는 기계 번역을 사용하여 번역되었습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

Serial Receive

직렬 포트를 통해 이진 데이터 수신

  • Serial Receive block

라이브러리:
Instrument Control Toolbox
Motor Control Blockset / Protection and Diagnostics

설명

Serial Receive 블록은 지정된 직렬 포트에 대한 인터페이스를 구성하고 엽니다. 구성 및 초기화는 모델 실행이 시작될 때 한 번 발생합니다. 블록은 모델이 실행되는 동안 직렬 포트에서 데이터를 수집합니다. 한 번에 하나의 Serial Receive 블록만 사용하여 특정 직렬 포트에서 데이터를 수신할 수 있습니다.

참고

Serial Receive 블록 파라미터를 지정하기 전에 Serial Configuration 블록을 사용하여 직렬 포트 파라미터를 구성해야 합니다.

이 블록에는 입력 포트가 없습니다. 차단 또는 비차단 모드를 선택하는지에 따라 1개 또는 2개의 출력 포트가 있습니다. 차단 모드를 선택하면 블록은 수신하는 데이터에 해당하는 하나의 출력 포트 Data를 갖습니다. 차단 모드를 선택하지 않으면 블록에는 두 개의 출력 포트 DataStatus가 있습니다.

이 블록은 FIFO(선입선출) 버퍼를 사용하여 직렬 포트에서 데이터를 수신합니다. 각 시간 스텝에서 Data 포트는 버퍼에서 요청된 값을 반환합니다. 비차단 모드에서 상태 포트는 블록이 새로운 데이터를 수신했는지 여부를 나타냅니다. Status 포트에 1가 표시되면 새 데이터를 사용할 수 있고, 상태 포트에 0이 표시되면 새 데이터를 사용할 수 없습니다.

기타 지원 기능

  • Serial Receive 블록은 Simulink® Accelerator 모드는 지원하지만 Rapid Accelerator 모드는 지원하지 않습니다. 이 기능은 Simulink 모델의 실행 속도를 높여줍니다.

  • Serial Receive 블록은 모델 참조 사용을 지원합니다. 이 기능을 사용하면 사용자의 모델에 다른 Simulink 모델을 모듈식 구성요소로 포함할 수 있습니다.

  • Serial Receive 블록은 C/C++ 코드 생성을 지원합니다. 이 기능을 사용하면 Simulink Coder™를 사용하여 C 및 C++ 코드를 생성할 수 있습니다.

이러한 기능에 대한 자세한 내용은 Simulink 설명서를 참조하십시오.

포트

출력

모두 확장

직렬 포트에서 블록이 수신한 데이터는 벡터, 행렬 또는 배열로 반환됩니다.

데이터형: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

새로운 데이터가 사용 가능한 상태인지 여부로, 숫자형 또는 논리형 1 (true) 또는 0 (false)로 반환됩니다. 이 포트가 1를 반환하면 새로운 데이터를 읽을 수 있습니다.

종속 관계

이 포트를 활성화하려면 Enable blocking mode 파라미터의 선택을 취소하십시오.

데이터형: Boolean

파라미터

모두 확장

데이터를 수신하려는 컴퓨터의 직렬 포트입니다. 사용 가능한 포트에서 포트를 선택한 다음 Serial Configuration 블록을 사용하여 포트를 구성합니다. 포트를 구성하지 않은 경우 모델을 실행할 때 블록에서 오류가 반환됩니다.

참고

Serial Receive 블록에는 구성된 Serial Configuration 블록이 있어야 합니다. 시뮬레이션에서 여러 개의 직렬 포트를 사용하는 경우 별도의 Serial Configuration 블록을 사용하여 각 포트를 구성해야 합니다.

프로그래밍 방식 사용

블록 파라미터: Port
유형: 문자형 벡터, string형

블록이 직렬 포트에서 수신하는 데이터형으로, MATLAB® 숫자 데이터형으로 지정됩니다.

프로그래밍 방식 사용

블록 파라미터: DataType
유형: 문자형 벡터, string형
값: 'uint8' | 'single' | 'double' | 'int8' | 'int16' | 'uint16' | 'int32' | 'uint32'
기본값: 'uint8'

이 파라미터를 선택하면 데이터 블록의 시작을 나타내는 헤더를 지정할 수 있습니다. 시뮬레이션은 헤더 이전에 발생한 데이터를 무시합니다. 헤더 데이터는 출력 포트로 전송되지 않습니다. 기본적으로 이 파라미터는 선택되지 않으며 헤더도 지정되지 않습니다.

이 파라미터에 지정된 숫자형 배열은 해당 ASCII 문자의 uint8 정수 표현입니다. 이 파라미터의 정확한 형식은 ASCII 문자의 유형에 따라 달라집니다.

ASCII 문자의 종류ASCII 문자 예MATLAB 명령파라미터 값
특수 문자"#"uint8('#')[35]
숫자형"81"uint8('81')[56 49]
알파벳"Start"uint8('Start')[83 116 97 114 116]

ASCII 문자의 16진수 표현을 사용하여 이 파라미터를 지정할 수도 있습니다.

프로그래밍 방식 사용

블록 파라미터: ToggleHeader
유형: 문자형 벡터, string형
값: 'on' | 'off'
기본값: 'off'
블록 파라미터: Header
유형: 문자형 벡터, string형
값: 정수형 배열

이 파라미터를 선택하면 데이터 블록의 끝을 나타내는 종결 토큰이나 종결자를 지정할 수 있습니다. 시뮬레이션은 종결 토큰 이후에 발생하는 모든 데이터를 새로운 데이터 블록으로 간주합니다. 종결 토큰 데이터는 출력 포트로 전송되지 않습니다. 이 종결 토큰은 직렬 포트에서 읽는 데이터의 토큰과 일치해야 합니다(직렬 포트에 토큰이 있는 경우).

Custom Terminator를 선택하면 원하는 종결 토큰 값을 지정할 수 있습니다.

프로그래밍 방식 사용

블록 파라미터: ToggleTerminator
유형: 문자형 벡터, string형
값: 'on' | 'off'
기본값: 'off'
블록 파라미터: Terminator
유형: 문자형 벡터, string형
값: '<none>' | 'CR ('\r')' | 'LF ('\n')' | 'CR/LF ('\r\n')' | 'NULL ('\0')' | 'Custom Terminator'
기본값: '<none>'

End token'Custom Terminator'로 설정된 경우 데이터 블록의 끝을 나타내는 사용자 지정 종결자입니다. 시뮬레이션은 종결자 이후에 발생하는 모든 데이터를 새로운 데이터 블록으로 간주합니다. 종결자 데이터는 출력 포트로 전송되지 않습니다.

이 파라미터에 지정된 숫자형 배열은 해당 ASCII 문자의 uint8 정수 표현입니다. 이 파라미터의 정확한 형식은 ASCII 문자의 유형에 따라 달라집니다.

ASCII 문자의 종류ASCII 문자 예MATLAB 명령파라미터 값
특수 문자"#"uint8('#')[35]
숫자형"81"uint8('81')[56 49]
알파벳"End"uint8('End')[69 110 100]

ASCII 문자의 16진수 표현을 사용하여 이 파라미터를 지정할 수도 있습니다.

프로그래밍 방식 사용

블록 파라미터: CustomTerminator
유형: 문자형 벡터, string형
값: 정수형 배열

블록이 직렬 포트에서 수신하는 데이터의 형식이며, 행 우선 또는 열 우선로 지정됩니다.

프로그래밍 방식 사용

블록 파라미터: InputFormat
유형: 문자형 벡터, string형
값: 'Row major' | 'Column major'
기본값: 'Column major'

출력 데이터 크기, 즉 각 시뮬레이션 시간 스텝에서 읽어야 하는 값의 개수입니다. 이 파라미터는 다차원 숫자 배열로 지정됩니다. 데이터 크기에는 헤더나 종결자 값이 포함되지 않습니다.

프로그래밍 방식 사용

블록 파라미터: DataSize
유형: 문자형 벡터, string형
값: 정수형 배열
기본값: '[1 1]'

이 파라미터는 블록이 데이터를 수신하는 동안 시뮬레이션을 기다리게 합니다. 새로운 데이터가 생기면 다음 시간 스텝부터 시뮬레이션이 계속됩니다. 읽기 작업으로 인해 시뮬레이션이 대기하지 않게 하려면 확인란의 선택을 취소하십시오.

차단 모드를 활성화하면, 시뮬레이션은 요청된 데이터가 사용 가능할 때까지 기다립니다. 모델은 Serial Configuration 블록의 제한 시간 파라미터로 지정된 시간까지 기다립니다. 시뮬레이션 중에 새로운 데이터가 나오지 않으면 Action when data is not available 파라미터에 대해 Error 옵션을 선택하여 오류를 반환할 수 있습니다.

차단 모드를 활성화하지 않으면 시뮬레이션이 지속적으로 실행되며 블록은 두 개의 출력 포트(StatusData)를 갖습니다. Data 포트에는 각 시간 스텝에서 요청된 데이터 세트가 포함되어 있습니다. Status 포트에는 주어진 시간 스텝에서 새 데이터를 수신했는지 여부에 따라 0 또는 1이 포함됩니다.

프로그래밍 방식 사용

블록 파라미터: EnableBlockingMode
유형: 문자형 벡터, string형
값: 'on' | 'off'
기본값: 'on'

데이터를 사용할 수 없을 때 블록이 취해야 할 조치입니다. 사용 가능한 옵션은 다음과 같습니다.

  • Output last received value — 블록은 현재 시간 스텝에서 데이터를 수신하지 못한 경우 이전 시간 스텝에서 수신한 값을 반환합니다.

  • Output custom value — 블록은 현재 데이터를 수신하지 못할 경우 사용자 정의 값을 반환합니다. 사용자 지정 값 필드에 사용자 지정 값을 정의합니다.

  • Error — 블록은 현재 데이터를 수신하지 못하면 오류를 반환합니다. 이 옵션을 사용하려면 Enable blocking mode를 선택해야 합니다.

프로그래밍 방식 사용

블록 파라미터: ActionDataUnavailable
유형: 문자형 벡터, string형
값: 'Output last received value' | 'Output custom value' | 'Error'
기본값: 'Output last received value'

새로운 데이터를 수신하지 못할 때 블록이 출력할 사용자 지정 값입니다. 사용자 지정 값은 수신하는 데이터의 크기와 같은 스칼라 또는 값이 될 수 있습니다(데이터 크기 파라미터로 지정). 이 파라미터를 설정하려면 Action when data is unavailableOutput custom value를 선택해야 합니다.

프로그래밍 방식 사용

블록 파라미터: CustomValue
유형: 문자형 벡터, string형
값: 숫자
기본값: '0'

시뮬레이션 중 블록의 샘플링 시간. 이는 시뮬레이션 중에 블록이 실행되는 속도입니다.

프로그래밍 방식 사용

블록 파라미터: SampleTime
유형: 문자형 벡터, string형
값: 양수 숫자
기본값: '0.01'

확장 기능

모두 확장

버전 내역

R2008a에 개발됨