| UART |
I2C |
|
| 작업 프로토콜 | · UART 전송 데이터는 데이터 버스가 다른 장치 (예 : CPU)에 의해 UART로 데이터를 보내는 데이터 버스에서 데이터를 수신합니다. · UART를 전송 한 후 데이터 버스에서 병렬 데이터를 가져 오면 시작 비트, 패리티 비트 및 중지 비트를 추가하여 데이터 패킷을 만듭니다. · 데이터 패킷은 수신 UART가 Rx 핀에서 데이터 패킷을 읽는 Tx 핀에서 전송됩니다. 전송 UART에 데이터가 남아 있지 않을 때까지 데이터가 전송됩니다. 데이터 전송 및 수신 · 전송 FIFO에 의해 데이터가 전송되면 FIFO 'BUSY'플래그가 표시되고 프로세스 중에 활성화됩니다. · FIFO = 선입 선출. 전송의 각 바이트가 수신 UART로 전달되도록 하는 것은 UART 버퍼입니다. · 'BUSY'비트는 데이터 전송이 완료되고 FIFO가 비어 있고 정지 비트를 포함하여 모든 비트가 전송된 후에 만 비활성화됩니다. · UART 수신기가 유휴 상태이고 시작 비트가 수신된 후 데이터 입력이 낮으면 수신 카운터가 실행되기 시작하고 데이터는 Baud16의 8 번째 사이클에 있습니다. · 시작 비트가 유효한 동안 Baud16의 8 번째 사이클 동안 Rx가 여전히 낮 으면 잘못된 시작 비트로 처리되어 무시됩니다. · 시작 비트가 유효하면 데이터 문자의 길이에 따라 Baud16의 16 번째주기마다 데이터 비트가 샘플링됩니다. 패리티 모드가 활성화 된 경우 패리티 비트도 감지됩니다. · Rx가 높으면 유효한 정지 비트가 승인됩니다. 그렇지 않으면 프레임 오류가 발생합니다. · 완전한 데이터 패킷이 수신되면 데이터는 수신 FIFO에 저장됩니다. 인터럽트 제어 · 인터럽트의 목적은 버퍼의 내용을 자동으로 보내는 것입니다. · 사용자는 다음과 같은 경우 인터럽트를 사용할 수 있습니다. · FIFO 오버플로 오류 · 줄 바꿈 오류 (RX 신호는 확인 및 정지 비트를 포함하여 0으로 유지됩니다.) · 패리티 오류 · 프레임 오류 (정지 비트 1이 아님) · 수신 시간 초과 (수신 FIFO에 데이터가 있지만 가득 차 있지 않고 후속 데이터가 전송되지 않음) · 전송 · 전수 FIFO 작동 · Stellaris ARM 제품군의 UART 모듈에는 두 개의 16 바이트 FIFO가 포함되어 있습니다. 하나는 전송 용이고 다른 하나는 수 신용입니다. · 다양한 깊이에서 인터럽트를 트리거하도록 구성 할 수 있습니다. 예를 들어 1/8, 1/4, 1/2, 3/4 및 7/8 깊이입니다. 수신 FIFO가 1/4에서 인터럽트를 트리거하면 UART가 4 개의 데이터를 수신 할 때 수신 인터럽트가 트리거됩니다. · FIFO 전송 작업 과정 : · 데이터가 입력되는 즉시 프로세스가 시작됩니다. 전송에는 시간이 많이 걸리므로 전송해야하는 다른 데이터를 전송 FIFO에 계속 입력 할 수 있습니다. · 전송 FIFO가 가득 차면 사용자가 기다려야합니다. 그렇지 않으면 데이터가 손실됩니다. · 전송 FIFO는 전송 FIFO가 완전히 비워 질 때까지 비트 단위로 데이터를 보냅니다. 전송 된 데이터가 삭제되면 전송 FIFO에 추가 슬롯이 추가됩니다. · FIFO 를 받는 작업 과정 : · 하드웨어가 데이터를 수신하면 수신 FIFO에 저장됩니다. 프로그램은 수신 FIFO의 데이터를 자동으로 삭제하므로 수신 FIFO에 공간이 생깁니다. 수신 FIFO의 데이터가 삭제되지 않고 수신 FIFO가 가득 차면 데이터가 손실됩니다. · 트랜시버 FIFO는 CPU가 비효율적이며 UART 트랜시버가 너무 자주 중단되는 문제를 해결하는 것입니다. UART 통신을 사용하면 인터럽트 모드가 폴링 방법보다 더 간단하고 효율적입니다. 트랜시버 FIFO가 없으면 각 데이터가 한 번 중단되고 비효율적입니다. 트랜시버 FIFO를 사용하면 인터럽트를 생성하고 데이터를 지속적으로 송수신 (최대 14 개) 할 수 있으므로 송수신 효율성이 향상됩니다. · FIFO로 인한 데이터 손실은 이미 송수신 과정에서 문제를 예측했기 때문에 발생하지 않습니다. UART가 초기화되는 한 인터럽트 루틴은 모든 것을 자동으로 수행합니다. 루프백 · UART에는 진단 또는 디버깅을위한 내부 루프백 기능이 있으며 Tx에서 전송된 데이터는 Rx 입력에 의해 수신됩니다. 직렬 적외선 프로토콜 · UART에는 IrDA SIR (Serial Infrared) 인코더 / 디코더 모듈이 있습니다. IrDA SIR 모듈은 비동기 UART 데이터 스트림과 반이중 직렬 SIR 인터페이스 사이를 변환합니다. · 디지털 코딩 된 출력과 디코딩 된 입력을 UART에 제공하는 데 사용됩니다. UART 신호 핀은 IrDA SIR 물리 계층 연결을 위해 적외선 트랜시버에 연결할 수 있습니다. |
데이터 전송 방법· 마스터는 SDA 라인을 전환 한 후 SDA 라인을 고전압 레벨에서 저전압 레벨로, SCL 라인을 하이에서 로우로 전환하여 연결된 모든 슬레이브에 전송 신호를 보냅니다.· 마스터는 각 슬레이브에 슬레이브의 7 비트 또는 10 비트 주소와 통신하려는 슬레이브에 읽기 / 쓰기 비트를 보냅니다. · 그런 다음 슬레이브는 주소를 자신의 주소와 비교합니다. 주소가 일치하면 슬레이브는 SDA 라인을 1 비트 동안 로우로 전환하는 ACK 비트를 반환합니다. 주소가 주소와 일치하지 않으면 슬레이브는 SDA 라인을 높게 유지합니다. · 마스터는 데이터 프레임을 보내거나 받습니다. 각 데이터 프레임이 전송된 후 수신 장치는 또 다른 ACK 비트를 전송자에게 반환하여 성공적인 전송을 확인합니다. · 데이터 전송을 중지하기 위해 마스터는 SDA를 하이로 전환하기 전에 SCL을 하이로 전환하여 슬레이브에 정지 신호를 보냅니다. clock 동기화· 모든 마스터는 SCL 라인에서 자체 클럭을 생성하여 I2C 버스에서 메시지를 전송합니다.· 데이터는 시계의 높은 기간에만 유효합니다. · 클럭 동기화는 I2C 인터페이스를 스위치가 하이에서 로우로 전환되는 SCL 라인에 연결하여 수행됩니다. 장치의 클록이 낮아지면 클록의 높은 수준에 도달할 때까지 SCL 라인을 이 상태로 유지합니다. · 다른 클럭이 여전히 낮은 기간에 있는 경우 low-to-high 스위치는 SCL 라인의 상태를 변경하지 않습니다. SCL 라인은 항상 낮은 기간이 가장 긴 장치에 의해 낮게 유지됩니다. 이때, 짧은주기와 낮은주기를 가진 장치는 높고 대기 상태가 됩니다. · 모든 관련 장치가 로우 기간을 완료하면 클록 라인이 높아집니다. · 그 후에는 장치 클록과 SCL 라인의 상태에 차이가 없으며 모든 장치가 높은주기를 계산하기 시작합니다. 높은 기간을 처음으로 완료 한 장치는 SCL 라인을 다시 낮게 만듭니다. · 동기 SCL 클록의 낮은 기간은 가장 긴 낮은 클록 기간을 가진 장치에 의해 결정되는 반면 높은 기간은 가장 짧은 높은 클록 기간을 가진 장치에 의해 결정됩니다. 전송 모드빠른 모드 :· 고속 모드 장치는 400kbit / s로 송수신 할 수 있습니다. 400kbit / s 전송과 동기화하고 SCL 신호의 낮은 기간을 연장하여 전송 속도를 늦출 수 있어야합니다.· 고속 모드 장치는 이전 버전과 호환되며 0 ~ 100kbit / s I2C 버스 시스템의 표준 모드 장치와 통신 할 수 있습니다. 그러나 표준 모드 장치는 상향 호환되지 않으므로 고속 I2C 버스 시스템에서 작동 할 수 없습니다. 고속 모드 I2C 버스 사양은 표준 모드와 비교하여 다음과 같은 특성이 있습니다. · 최대 비트 전송률은 400kbit / s로 증가합니다. · 직렬 데이터 (SDA) 및 직렬 클록 (SCL) 신호의 타이밍을 조정했습니다. · 글리치를 억제하는 기능이 있으며 SDA 및 SCL 입력에는 Schmitt 트리거가 있습니다. · 출력 버퍼에는 SDA 및 SCL 신호의 하강 에지에 대한 기울기 제어 기능이 있습니다. · 고속 모드 장치의 전원 공급 장치가 꺼지면 SDA 및 SCL의 I / O 핀이 유휴 상태 여야하며 버스를 차단할 수 없습니다. · 버스에 연결된 외부 풀업 장치는 고속 모드 I2C 버스의 가장 짧은 최대 허용 상승 시간을 수용하도록 조정되어야합니다. 최대 부하가 200pF 인 버스의 경우 각 버스의 풀업 장치는 저항기가 될 수 있습니다. 부하가 200pF와 400pF 사이 인 버스의 경우 풀업 장치는 전류 소스 (최대 3mA) 또는 스위치 저항 회로 일 수 있습니다. 고속 모드 :· Hs 모드 장치는 최대 3.4Mbit / s의 비트 전송률로 정보를 전송할 수 있으며 속도 혼합 버스 시스템에서 양방향으로 통신 할 수있는 고속 모드 또는 표준 모드 (F / S 모드) 장치와 완전히 역 호환됩니다.· Hs 모드 전송은 수행되지 않는 중재 및 클럭 동기화를 제외하고 F / S 모드 시스템과 동일한 직렬 버스 원리 및 데이터 형식을 갖습니다. · 고속 모드의 I2C 버스 사양은 다음과 같습니다. · 고속 (Hs) 모드에서 마스터 장치에는 고속 (SDAH) 신호용 오픈 드레인 출력 버퍼와 고속 직렬 클럭 ()에서 오픈 드레인 풀다운 및 전류 소스 풀업 회로가 있습니다. SCLH) 출력. 이렇게하면 SCLH 신호의 상승 시간이 단축되고 언제든지 하나의 호스트 전류 소스 만 활성화됩니다. · 다중 마스터 시스템의 Hs 모드에서는 비트 처리 기능의 속도를 높이기 위해 중재 및 클록 동기화가 수행되지 않습니다. 중재 프로세스는 일반적으로 호스트 코드가 F / S 모드로 전송 된 후에 종료됩니다. · Hs 모드 마스터 장치는 설정 및 유지 시간에 대한 타이밍 요구 사항을 제거하는 1 : 2 비율로 높고 낮은 직렬 클록 신호를 생성합니다. · Hs 모드 장치에는 내장 브리지가있을 수 있습니다. Hs 모드 전송 중에 Hs 모드 장치의 SDAH 및 SCLH 라인은 SDA 및 SCL 라인과 분리되어 SDAH 및 SCLH 라인의 용량 성 부하를 줄이고 상승 및 하강 속도를 높입니다. · Hs 모드 슬레이브 장치와 F / S 슬레이브 장치의 차이점은 작동 속도입니다. · Hs 모드 장치는 글리치를 억제 할 수 있으며 SDAH 및 SCLH 출력에도 Schmitt 트리거가 있습니다. · Hs 모드 장치의 출력 버퍼에는 SDAH 및 SCLH 신호의 하강 에지에 대한 기울기 제어 기능이 있습니다. |
uart
- UART와 I2C 비교 및 차이_02 2024.07.16
- UART와 I2C 비교 및 차이_01 2024.07.15 1
UART와 I2C 비교 및 차이_02
2024. 7. 16. 10:08
UART와 I2C 비교 및 차이_01
2024. 7. 15. 09:13
| UART | I2C | |
| 정의 및 개념 |
1. 범용 비동기 수신 및 전송 (UART)의 약자 2. 호스트가 보조 장치와 통신할 수 있도록하는 간단한 직렬 통신 프로토콜입니다. 3. UART는 양방향, 비동기 및 직렬 데이터 전송을 지원합니다. 4. 두 개의 데이터 라인이 있습니다. 하나는 전송용(TX)이고 다른 하나는 수신용(RX)이며 디지털 핀 0, 디지털 핀 1을 통해 통신하는 데 사용됩니다. 5. TX 및 RX는 두 장치간에 연결됩니다. (예 : USB 및 컴퓨터) 6. UART는 컴퓨터와 외부 직렬 장치 간의 동기화 관리 문제도 처리할 수 있습니다. |
|
| 작동 방식 | 1. 3 가지 방식으로 장치간에 작동 할 수 있습니다. A. Simplex = 한 방향으로 데이터 전송 B. 반이중 = 양방향으로 동시에 데이터 전송 C. 전이중 = 양방향으로 동시에 데이터 전송 2. 연결되면 데이터는 수신 UART의 TX에서 RX로 흐릅니다. 3. UART는 비동기 직렬 전송이므로 클록 없음 4. UART 전송은 마스터 장치 (예 : CPU)의 병렬 데이터를 직렬 형식으로 변환하고 수신 UART에 직렬로 전송합니다. 그런 다음 직렬 데이터를 수신 장치의 병렬 데이터로 다시 변환합니다 5. UART에는 클럭이 없으므로 UART는 전송중인 시작 및 중지 비트를 추가합니다. 6. 이것은 비트가 데이터 패킷의 시작과 끝을 나타내기 때문에 수신 UART가 비트 읽기를 시작할 시기를 알 수 있도록 도와줍니다. 수신 UART가 시작 비트를 감지하면 BAUD rate로 비트를 읽습니다. 7. UART 데이터 전송 속도는 BAUD 속도라고하며 기본적으로 115,200으로 설정됩니다 (BAUD 속도는 심볼 전송 속도를 기반으로하지만 비트 속도와 유사 함). 8. 두 UART는 거의 동일한 전송 속도로 작동해야합니다. BAUD 속도의 차이가 10 % 이상이면 비트 타이밍이 꺼져있을 수 있으며 사용자는 UART가 동일한 데이터 패킷에서 송수신하도록 구성되어 있는지 확인해야합니다. |
|
| 장점 |
|
|
| 단점 |
|
|
'FW' 카테고리의 다른 글
| Simplicity studio로 EFM8BB3 다루기_02 (0) | 2023.11.01 |
|---|---|
| Simplicity studio로 EFM8BB3 다루기 (2) | 2023.11.01 |