러시아어로 된 Uart 인터페이스 설명. UART 직렬 포트를 탐색합니다. 병렬 또는 직렬

Hysteria는 보드를 컴퓨터에 연결하는 방법에 대해 많은 질문을 제기했습니다. 그리고 많은 사람들은 UART가 무엇인지조차 이해하지 못합니다. 그리고 저는 그것이 얼마나 강력한 도구인지 여기서 말씀드리기로 결정했습니다.

UART를 통해 키보드와 디스플레이를 연결하면 라우터가 컴퓨터로 변합니다.

CW에서 COM 포트로

UART(Universal Asynchronous Receiver/Transmitter) 프로토콜 또는 러시아어로 UART(Universal Asynchronous Receiver/Transmitter) 프로토콜은 오늘날 가장 오래되고 널리 퍼져 있습니다. 물리적 프로토콜데이터 전송. UART 제품군 중 가장 유명한 프로토콜은 RS-232(컴퓨터에 있는 포트와 동일한 COM 포트로 널리 알려져 있음)입니다. 이게 아마 가장 오래된 것 같은데 컴퓨터 인터페이스. 그것은 오늘날까지 살아 남았으며 관련성을 잃지 않았습니다.

UART 인터페이스는 처음에 미국에서 전신 메시지 전송 수단으로 등장했으며 5개의 작동 비트(모스 부호와 같이)가 있었습니다. 전송에 사용 기계 장치. 그런 다음 컴퓨터와 7비트가 필요한 ASCII 코드가 등장했습니다. 60년대 초반에 잘 알려진 8비트 ASCII 테이블, 그리고 나서 전송 형식은 전체 바이트와 3개의 제어 비트를 차지하기 시작했습니다.

이미 초소형 회로 붐이 시작된 1971년, 고든 벨(Gordon Bell) 회사의 PDP 컴퓨터 서부 디지털 UART WD1402A 칩을 만들었습니다. 80년대 초반 내셔널 세미컨덕터는 8520 칩을 만들었습니다. 90년대에는 인터페이스에 대한 버퍼가 발명되어 더 많은 데이터를 전송할 수 있게 되었습니다. 고속. 이 인터페이스는 거의 변경되지 않은 채 오늘날까지 살아 남았습니다.

인터페이스의 물리학

다양한 UART 인터페이스를 유사하게 만들고 다르게 만드는 요소를 이해하기 위해 가장 인기 있고 사랑받는 프로토콜인 RS-232의 작동 원리를 살펴보겠습니다. 나는 그의 작업의 모든 복잡성을 꼼꼼하게 설명하지 않을 것입니다. 이에 대해 수십 메가바이트 이상의 기사가 작성되었으며 Google 사용법을 알면 모든 것을 쉽게 찾을 수 있습니다. 필요한 정보. 하지만 기본 사항을 말씀 드리겠습니다. 다행스럽게도 이미 모든 것을 멋지게 조종할 수 있으며 모든 종류의 트릭은 거의 사용되지 않습니다.

당사의 주요 운영 라인은 RXD 및 TXD이거나 단순히 RX 및 TX입니다. 송신 라인은 TXD(Transmitted Data) 포트이고 RXD(Received Data) 포트는 수신 라인입니다.
이러한 COM 포트 라인은 하드웨어 데이터 흐름 제어 없이 전송 중에 사용됩니다. 하드웨어 스트림의 경우 추가 인터페이스 라인(DTS, RTS 등)이 사용됩니다. 송신기의 TX 출력은 수신기의 RX 입력에 연결되며 그 반대도 마찬가지입니다. 전기 원리 RS-232 작동은 표준 5V TTL 로직과 다릅니다. 이 프로토콜에서 논리 0은 각각 +3~+12V이고 1은 -3~-12입니다. -3V에서 +3V까지의 범위는 불확실한 영역으로 간주됩니다. 모든 전압은 컴퓨터 케이스 또는 접지를 기준으로 표시됩니다. 이제 그 이유를 이해하신 것 같습니다. 컴퓨터 장치한 번에 -12V와 +12V의 두 가지 공급 전압이 있습니다. 이는 COM 포트 작동을 위해 특별히 도입되었습니다.


RS-232를 통한 신호 수신 (M. 국의 책 "PC 하드웨어 인터페이스"에서 발췌)

24V에 달하는 큰 작동 전압 진폭은 주로 통신 회선의 잡음 내성을 위해 필요합니다. 표준에 따르면 데이터를 전달하는 케이블의 길이는 15m가 될 수 있지만 실제로는 25m에서도 작동할 수 있습니다. 전기적 매개변수 RS-232는 주요 특징이는 UART 제품군의 다른 프로토콜과 구별됩니다.

다음 특성(메시지 형식 및 데이터 전송 속도)은 모든 유형의 UART에 완벽하게 적용 가능하며 간단한 인터페이스 방식을 통해 호환성을 보장합니다.

표준 메시지는 10비트를 사용합니다. 하지만 이 규칙은 다음에만 적용됩니다. 표준 설정 COM 포트. 원칙적으로는 One-Wire 인터페이스까지 이해할 수 있도록 재구성할 수 있습니다. 유휴 모드에서는 회선이 아무 것도 전송하지 않을 때 논리 1, 즉 -12V 상태에 있습니다. 전송의 시작은 항상 시작 비트를 전송하여 표시됩니다. 0과 같음. 그런 다음 8비트의 데이터가 전송됩니다. 전송은 패리티 비트와 정지 비트에 의해 완료됩니다. 패리티 비트는 전송된 데이터를 확인합니다. 시작 비트는 데이터 전송이 완료되었음을 알려줍니다. STOP 비트는 1, 1.5, 2비트를 차지할 수 있다는 점에 유의해야 합니다. 이것이 분수 비트라고 생각하지 마십시오. 이 숫자는 지속 시간만을 나타냅니다. 정지 비트는 시작 비트와 마찬가지로 0입니다.


오실로스코프 화면의 UART 신호. 시작 비트, 데이터 및 정지 비트가 표시됩니다. 사진을 제공해주신 DIHALT에게 감사드립니다

작동 속도

이전에 COM 포트로 작업한 적이 없더라도 적어도, 모뎀에서는 공칭 작동 속도(9600, 28800, 33600, 56000 등)를 알아야 합니다. 우리 포트에서 초당 몇 비트가 빠져나오고 있습니까? 보세요, 속도가 초당 9600비트라고 가정해 보겠습니다. 이는 1비트를 보내는 데 1/9600초가 걸리고, 1바이트를 보내는 데 11/9600이 걸린다는 것을 의미합니다. 그리고 이 바이트 속도는 정지 비트가 1비트를 차지하는 경우에만 정확합니다. 두 개의 정지 비트를 차지하면 전송은 12/9600이 됩니다. 이는 데이터 비트와 함께 더 많은 정보가 발생하기 때문입니다. 특수 비트: 시작, 중지 및 패리티 비트. COM 포트 속도 범위는 표준화되어 있습니다. 일반적으로 모든 장치는 9600, 19200, 115200의 세 가지 표준 속도로 작동합니다. 그러나 비표준 속도나 시간에 따라 변하는 속도를 사용하더라도 다른 옵션도 가능합니다. 다음 장치를 보고할 때 이 사실을 발견했습니다.

이렇게 다른 프로토콜

UART에는 다양한 유형이 있습니다. 나는 그들의 이름을 나열하지 않을 것입니다. 왜냐하면 당신이 영어를 한다면, 당신 스스로 그 사람들을 구글링할 수 있을 것이기 때문입니다. 하지만 가장 중요한 것은 무시할 수 없습니다! 인터페이스 간의 주요 차이점은 데이터 전송 환경과 방법이라는 점을 상기시켜 드리겠습니다. 데이터는 광섬유를 통해서도 전송될 수 있습니다.

RS-232 다음으로 두 번째로 가장 일반적인 인터페이스는 RS-485입니다. 산업 표준이며 연선 케이블을 통해 전송이 수행되므로 잡음 내성이 우수하고 속도 증가초당 최대 4MB를 전송합니다. 여기서 전선의 길이는 1km에 이릅니다. 일반적으로 공장에서 다양한 기계를 제어하는 ​​데 사용됩니다.

대부분의 전화기와 PDA에 내장되어 있는 IRDA(적외선 통신)도 본질적으로 UART라고 말할 수 있습니다. 데이터만 유선이 아닌 적외선을 통해 전송됩니다.

스마트카드(SIM, 위성 텔레비전, 은행 카드) - 모든 자존심이 강한 사기꾼이 도둑질을 꿈꾸는 바로 그 장치 - 또한 우리가 사랑하는 UART를 사용합니다. 사실, 반이중 데이터 전송이 있으며 작동 논리는 1.8/3.3 및 5V일 수 있습니다. RX는 한쪽 끝과 다른 쪽 끝이 TX로 납땜되어 있는 것처럼 보입니다. 결과적으로 하나는 전송 중이고 다른 하나는 그 순간 듣고 있으며 그 반대의 경우도 마찬가지입니다. 이는 스마트 카드 표준에 의해 규제됩니다. 이런 식으로 우리는 우리가 보낼 바이트 수와 카드가 우리에게 응답할 바이트 수를 정확히 알 수 있습니다. 이 주제는 별도의 기사에 적합합니다. 일반적으로 UART는 거의 모든 곳에 존재한다는 점을 기억하세요.


보드에 UART가 있는 장치(시계 방향): 마우스, SMART 카드 리더-에뮬레이터, Palm m105 PDA, ATtiny2313(또는 AT89C2051) 마이크로컨트롤러용 디버그 보드, 모뎀.

인터페이스 페어링

벌써부터 눈이 아프다 다양한 인터페이스, 하지만 그들과 함께 일하는 방법은 무엇입니까? 글쎄요, 일반 RS-232에서는 분명하지만 5V 전원 공급 장치를 사용한다고 가정해 보겠습니다. 간단합니다. 기성품 변환기 칩이 다양합니다. 일반적으로 표시에는 숫자 "232"가 포함됩니다. 다이어그램에 이러한 숫자가 있는 마이크로칩이 보이면 안심하십시오. 변환기일 가능성이 높습니다. 모든 UART 인터페이스는 작은 연결을 통해 이러한 미세 회로를 통해 인터페이스됩니다. 산업용 인터페이스에 대해서는 이야기하지 않고 우리가 주로 관심을 갖는 변환기에 대해 이야기하겠습니다.

가장 유명한 인터페이스 변환기는 MAXIM에서 개발한 초소형 회로로, MAX232라는 이름의 일부를 따왔습니다. 0.1μF에서 4μF까지 4개의 커패시터와 5V 전원 공급 장치가 필요합니다. 놀랍게도 이 5V IC는 5V UART를 RS-232에 인터페이스하기 위해 음전압을 생성합니다.

미세 회로가 있습니다 USB 페어링예를 들어 ft232rl 칩과 같은 UART를 사용합니다. Ubuntu에는 이미 이 칩용 드라이버가 내장되어 있습니다. Windows의 경우 공식 웹사이트에서 다운로드해야 합니다. 드라이버를 설치하면 가상 COM 포트가 시스템에 나타나며 이미 이를 사용하여 운전할 수 있습니다. 다양한 장치. 이러한 미세 회로를 유일한 것으로 받아들이지 말 것을 권합니다. 더 저렴하고 흥미로운 유사품이 엄청나게 많기 때문에 Google을 검색하면 UART의 세계가 멋지다는 것을 알게 될 것입니다.

일반적으로 초소형 회로는 상당히 비싸며 때로는 한 쌍의 트랜지스터를 사용하여 더 복잡하지만 더 저렴한 회로를 사용할 수 있습니다.

이것이 우리에게 무엇을 제공합니까?

아시다시피 UART 인터페이스는 일종의 프로세서나 컨트롤러를 포함하는 많은 장치에 존재합니다. 더 자세히 말씀드리자면, 컨트롤러가 있다면, Eart는 절대적으로 존재하는 것입니다(그러나 항상 사용할 수는 없습니다). 일반적으로 이 인터페이스는 장치의 기능을 설정하고 확인하는 데 사용됩니다. 종종 제조업체는 제품에 이 인터페이스가 있다는 사실에 대해 침묵하지만 찾기는 어렵지 않습니다. 프로세서 설명서를 다운로드하면 인터페이스의 위치를 ​​알 수 있습니다. 당사의 인터페이스를 통해 하드웨어에 물리적으로 접근한 후 원하는 대로 하드웨어를 사용자 정의하거나 제조업체가 의도한 방식이 아닌 필요한 방식으로 작동하도록 만들 수도 있습니다. 일반적으로 적당한 장치를 최대한 활용합니다. 이 프로토콜을 알면 두 사람 사이의 교환 회선에서 무슨 일이 일어나고 있는지 엿볼 수도 있습니다. 다른 프로세서, 제조업체는 종종 장치에서 전체 UART 네트워크를 구성하기 때문입니다. 일반적으로 많은 응용 프로그램이 있으며 가장 중요한 것은 수행 방법을 직관적으로 이해하는 것입니다.

라우터를 업데이트하자

얼마 전 WL-520GU WiFi 라우터를 설정하고 Step의 "액세스 포인트 레벨 업"(][ #106) 기사를 읽은 후 거기에 Linux를 성공적으로 설치했습니다. 하지만 스왑 파티션을 마운트하는 데 문제가 있습니다. 하드 드라이브. 따라서 파티션이 마운트되었는지 여부에 관계없이 액세스 포인트의 부팅 로그를 확인하고 즉석에서 필요한 변경을 수행해야했습니다. 육감으로 나는 내 라우터에 단순히 UART가 있어야 한다고 의심했습니다. 십자드라이버를 들고 분해를 시작했습니다. 사소한 문제이지만 문제가 있습니다. 숨겨진 나사는 고무 발 아래에 있습니다(반복하기로 결정한 경우 분해하면 보증이 상실된다는 점을 기억하십시오). 내 눈앞에 나타난 것은 모든 것이 "칩인원"인 다소 지루한 보드였습니다. CPU, 여기에는 외부 RAM, 플래시 드라이브, 전력 변환기, 버튼이 있는 일련의 커넥터 등 모든 것이 포함되어 있습니다. 하지만 보드는 납땜되지 않았습니다 접촉 패드, 더 정확하게는 바늘 구멍입니다. 그 중 네 명이있었습니다. 여기 UART가 있습니다. 그것은 분명합니다! 멀티미터가 없어도 보드에서 가장 바깥쪽 바늘이 +3.3V이고 두 번째 바늘이 접지되어 있음을 알 수 있습니다. 중간 접점은 각각 RX와 TX입니다. 과학적인 조사를 통해 쉽게 결정되는 것은 무엇입니까(인터페이스를 태우는 것은 매우 문제가 됩니다).
UART 인터페이스는 라우터마다 다르게 보인다는 점을 바로 주목하고 싶습니다. 대부분의 경우 이는 보드에 납땜된 구멍이 아닙니다. 사실, ASUS의 한 라우터에서는 완전히 서명된 커넥터도 발견했습니다.

변환기 조립

라우터를 컴퓨터에 연결하려면 RS-232 인터페이스를 라우터의 UART와 페어링해야 합니다. 원칙적으로 위에서 언급한 FT232RL 칩을 사용하여 USB에 연결할 수 있습니다. 이는 제가 처음 라우터를 확인할 때 했던 작업입니다. 하지만 이 초소형 회로는 납땜하기가 매우 어려운 패키지에 들어 있으므로 더 자세히 이야기하겠습니다. 간단한 솔루션. 즉, MAX232 칩입니다. 라우터로 전원을 공급받으려면 3.3V가 될 가능성이 높으므로 일반적으로 PDA에 있는 MAX3232를 사용하는 것이 좋습니다(배선 다이어그램은 인터넷에서 쉽게 찾을 수 있습니다). 하지만 내 라우터의 입력 전원은 +5V이고 이러한 미세 회로가 매우 다양하므로 신경 쓰지 않았습니다. 조립을 위해서는 0.1uF 커패시터(4개)와 마이크로 회로 자체가 필요합니다. 우리는 모든 것을 납땜합니다 전통적인 방식, 실험을 시작합니다.


어셈블리 소스

널 모뎀 케이블을 쉽게 연결할 수 있도록 출력단에 즉시 9핀 수 커넥터를 설치했습니다. 기억하신다면 DOS 시대에는 이러한 케이블을 사용하여 두 컴퓨터의 네트워크를 만들고 Dyuknyukem에서 절단했습니다. 우리 목적에 맞는 와이어를 조립하는 것은 어렵지 않습니다. 사실, 완전한 널 모뎀은 아니며 이를 통해 많은 플레이를 할 수는 없지만 액세스 포인트를 조정하는 것이 가장 중요합니다! 2개의 9핀 암 커넥터, 이를 위한 하우징 및 오래된 마우스나 키보드의 와이어(가장 중요한 것은 3개의 와이어가 있다는 것)가 필요합니다. 먼저 접지를 연결합니다. 이것은 커넥터의 다섯 번째 핀입니다. 전선을 가져와 양쪽의 5번째 핀에 납땜하면 됩니다. 하지만 RX와 TX를 사용하려면 좀 더 교묘한 작업을 수행해야 합니다. 와이어의 한쪽 끝에서 세 번째 접점까지 납땜하고 다른 쪽 끝에서 두 번째 접점까지 납땜합니다. 세 번째 와이어와 마찬가지로 한쪽 끝에서만 두 번째 접점에, 다른 쪽 끝에서 세 번째 접점에 납땜합니다. 요점은 TX가 RX로 전송해야 한다는 것입니다. 케이스에 납땜된 커넥터를 숨기면 널 모뎀 케이블이 준비됩니다!


라우터 보드에 핀을 납땜했습니다.

설치가 쉽도록 공유기 마더보드에 핀커넥터를 납땜하고 MAX232를 사용하여 마운팅에 역커넥터를 납땜한 뒤 카드보드를 슬롯처럼 삽입했습니다. 라우터의 RX와 TX는 실험적으로 선택됩니다.


조립된 보드

이제 변환기 칩에 전원을 공급해야 합니다. 이미 라우터 마더보드의 커넥터에 직접 공통 전선이 있습니다. 그러나 + 5V는 어댑터가 연결된 라우터의 전원 입력 바로 옆에 있습니다. 라우터 접지를 기준으로 다양한 노드를 측정하여 전압계로 5V 지점을 결정합니다.
전원을 연결하세요. 우리는 악의적인 실험을 시작하고 시작합니다.


전선이 나올 수 있도록 구멍을 태워주세요


납땜된 COM 포트


모두가 여기에 있습니다. 빨간색 전원선은 라우터 어댑터 커넥터로 연결됩니다. 내부의 매듭은 납땜된 전선을 갑자기 떼어내기 위해 만들어졌습니다.

터미널 설정

터미널 프로그램을 설정해야 합니다. Windows에서는 모든 것이 매우 간단합니다. 하이퍼 터미널을 실행하고 소프트웨어 및 하드웨어 데이터 검사를 비활성화하고 속도를 115200 및 1 정지 비트로 설정합니다. 그러나 Linux에서는 상황이 조금 더 까다롭습니다. 나는 우분투를 가지고 있고 그것에 대해 이야기하겠습니다. 먼저 어셈블리에서 COM 포트가 무엇인지 파악하십시오. 제 경우에는 COM1이 ttyS0이었습니다(예를 들어 FT232 칩을 사용하는 경우 ttyUSB0이라고 합니다). 이 작업을 위해 저는 minicom 소프트웨어를 사용했습니다.

minicom -l -8 -c on -s 매개변수를 사용하여 실행하십시오. 다음으로 "설정"을 선택하세요 직렬 포트»:
직렬 포트 /dev/ttyS0

* 보드/패리티/비트 115200 8N1
* 하드웨어 제어흐름 - 아니
* 소프트웨어 제어흐름 - 아니

설정을 저장합니다. 소프트웨어가 모뎀 초기화를 시도할 것입니다. 주의하지 마십시오. 메뉴를 열려면 다음을 누르세요. . 여기에서 설정을 변경할 수 있습니다(예: 에코 켜기/끄기 - E).
설정

기능을 확인하기 위해 변환기 칩을 라우터에 연결하지 않는 것이 좋습니다. 그것에서만 음식을 섭취하는 것이 허용됩니다. 테스트는 매우 간단합니다. RX와 TX를 연결해야 합니다. 먼저 COM 포트의 두 번째 및 세 번째 접점을 브리지합니다. 터미널 설정을 확인합니다. 키보드에 무언가를 적습니다. 문자가 다시 나타나면 모든 것이 정상입니다. 또한 케이블, 동일한 접점을 확인하십시오. 그런 다음 마이크로 회로를 연결하고 출력에 점퍼를 배치합니다. 예를 들어, 문제가 있었고 모든 것을 확인하고 버그를 발견할 때까지 아무것도 작동하지 않았기 때문에 이것을 지적합니다.

모든 설정이 끝나면 라우터에 안전하게 연결하고 라우터에서 RX-TX를 찾아 주기적으로 전원을 끌 수 있습니다. 모든 것이 올바르게 완료되면 전원을 켜면 라우터 부팅 로그가 표시됩니다. 축하합니다. 이제 마치 라우터 키보드가 있는 모니터 앞에 앉아 있는 것처럼 완전한 하드웨어 루트를 갖게 되었습니다.


minicom 프로그램의 라우터 부팅 로그인

자율 수영

SSH를 통해 수행하는 것이 더 편리한 터미널 프로그램을 통해 동일한 작업을 수행하는 것은 얼음이 아닙니다. 저는 라우터를 고유한 아키텍처를 갖춘 독립형 Linux 컴퓨터로 바꾸고 싶었습니다. 이를 위해서는 키보드의 데이터가 UART를 통해 전송되고 이를 통해 모니터에 표시되어야 합니다. 장치를 납땜하고 개발하는 것은 게으른 일이었습니다. 먼지가 쌓이고 유휴 상태였던 PDA를 이러한 목적으로 사용하자는 아이디어가 나온 것은 바로 그때였습니다. 실제로 핸드헬드는 키보드와 디스플레이 컨트롤러 역할을 할 뿐만 아니라 인터페이스용 인터페이스 역할도 하게 됩니다.

먼저 나는 고대 Palm m100을 시험해 보았다. 하지만 분명히 그는 아주 작은 것을 가지고 있습니다 버퍼 메모리, 그리고 라우터에서 나오는 데이터의 양 때문에 그는 기분이 나빠졌습니다. 나는 일반 COM 포트와 터미널 터미널을 갖춘 산업용 PDA를 하나 더 가져갔습니다. 연결하고 도크에 삽입한 결과 작은 Linux 컴퓨터가 생겼습니다. 원칙적으로 WinCE 운영 체제를 실행하는 대부분의 휴대용 장치는 값비싼 산업용 PDA 대신 적합한 터미널 소프트웨어를 찾는 것입니다.


리눅스 컴퓨터 :)

결과

그래서 UART를 활용한 작은 예를 보여드렸습니다. 이 프로토콜에 참여한다면 제 말을 믿으세요. 당신은 다양한 하드웨어의 마스터가 될 것입니다. 거의 모든 곳에서 사용할 수 있으며 이를 통해 완전히 다른 것처럼 보이는 것을 연결할 수 있습니다. 예를 들어 다음과 같은 경우 동일한 라우터로 작은 설정연결하다 휴대전화 Ewart에 따르면 - 인터넷을 배포합니다. 일반적으로 많은 응용 프로그램이 있습니다. 실험하고, 교육하고, 아이디어를 실현하는 것을 두려워하지 마십시오.

이 게시물은 Hacker No. 05/09 “에 실린 내 기사의 Habr을 편집한 버전입니다. 주요 도구프리커."

문학:
1. Mikhail Guk “PC 하드웨어 인터페이스”는 단순히 개인용 컴퓨터에 대한 학생의 성경입니다.

UART - 범용 비동기식 수신기-송신기 또는 러시아어 범용 비동기식 수신기-송신기 - UART. 컴퓨터와 전자 제품의 다양한 디지털 장치 간의 통신을 구성하는 데 사용됩니다. 인터페이스는 전송된 데이터를 직렬 코드로 변환하여 하나씩 전송할 수 있도록 합니다. 디지털 라인다른 전자 장치. 직접적인 설명아직 UART 프로토콜이 있지만 이에 대한 간접적인 설명은 잘 알려진 표준에서 볼 수 있습니다. 물리적 프로토콜 RS-232, RS-422, RS-423, RS-485

이러한 인터페이스의 차이점은 무엇입니까? 직렬 인터페이스에서는 데이터가 하나의 와이어를 통해 순차적으로 전송되는 반면, "병렬" 인터페이스에는 메시지의 일부가 병렬로 전송되는 여러 와이어로 구성된 버스가 있습니다.

병렬 전송의 가장 큰 장점은 비트 그룹이 한 번에 전송된다는 것입니다. 또한 마이크로 컨트롤러 내부에서도 병렬 데이터 전송이 사용되므로 추가 변환이 필요하지 않습니다. 그러나 중요한 단점도 있습니다. 가장 큰 문제는 와이어를 따라 있는 비트가 병렬로 도착하지 않을 수 있으며 정확한 메시지를 수신하려면 추가 회로 솔루션이 필요하다는 것입니다. 이는 전송 속도를 제한합니다.

직렬 전송의 경우 전송된 비트데이터는 먼저 병렬 코드로 변환되어야 하며, 이를 위해서는 추가 시간이 필요합니다. 하지만 그러면 각각의 비트 시퀀스를 동기화할 필요가 없습니다. 별도의 전선, 뭐에 이 경우, 고속 데이터 전송 가능성을 높입니다.

범용 비동기식 트랜시버(UART)는 지난 세기 60년대 초반부터 사용되었으며 이후 심각한 현대화를 거쳤습니다. 21세기에도 직렬 UART 프로토콜은 여전히 ​​인터넷의 서로 다른 디지털 장치 간에 비트를 교환하는 주요 방법 중 하나입니다. 장거리.

UART는 과거에 널리 사용되었던 것의 기초입니다. 매우 간단한 형태로 UART 인터페이스는 전송, 수신 및 접지의 세 가지 와이어로 구성됩니다.


범용 비동기식 트랜시버의 중요한 단점은 둘 중 어느 것인지 결정할 방법이 없다는 점입니다. 디지털 장치어느 것이 리더이고 어느 것이 슬레이브(마스터/슬레이브)입니까? 일반적으로 이는 회로를 설계하는 사람이 이 와이어의 이름을 TX로 지정하고 아래 그림에 따라 장치의 작동을 지정할 수 있는지 결정합니다.


이 경우 마이크로 컨트롤러는 데이터를 수신하고 전송합니다. 그리고 다음과 같이 할 수 있습니다:


이 방식에 따르면 마이크로 컨트롤러는 항상 수신기(RX)로 전송(TX)하고 그 반대의 경우도 마찬가지입니다. 두 가지 계획 중 어느 것이 여전히 올바른가요? 두 가지 모두 모든 것이 칩 제조업체와 완성된 디지털 장치에만 의존한다는 것이 밝혀졌습니다.

TX 및 RX-RX에 연결된 Attention TX는 대부분의 경우 칩을 태울 것이므로 연결 방법에는 여러 가지가 있으므로 UART를 통해 칩을 연결하기 전에 설명서를 읽는 좋은 예입니다.

수신기와 송신기가 동일한 경우 인쇄 회로 기판, 수신 및 전송 중 신호 레벨은 마이크로 컨트롤러의 공급 전압 레벨과 거의 동일합니다. 논리적인 1레벨인 "1"이 3.3V의 전위로 전송되고 0은 0.5V 이하의 전위로 전송된다고 가정해 보겠습니다. 장거리 신호 전송의 경우 신호 왜곡 및 증가 형태로 문제가 나타나기 시작하고 전송 오류가 나타나 완전히 중지됩니다.

이러한 문제를 해결하기 위해 송신 및 수신 라인에 추가 버퍼를 추가하여 신호를 증폭합니다. 그 후에는 정보 손실 없이 수십 미터 이상으로 전송할 수 있습니다. 그러나 DC에서는 -3V..-15V의 전압이 논리 장치의 레벨을 전송하는 데 사용되며 "0" - +3V ~ +15V의 경우.


동기화 대신 UART는 준비하는 소위 "시작 비트"를 사용합니다. 디지털 회로메시지를 전송하는 것입니다. 시작 비트 뒤에는 데이터가 있고 정보 전송이 완료되었음을 나타내는 "정지 비트"가 라인으로 전송됩니다. 총 10비트가 있습니다. 첫 번째는 시작 비트, 8개의 데이터 비트, 마지막 정지 비트입니다. 아래 그림에서 UART 인터페이스 프로토콜을 통한 데이터 전송의 오실로그램을 참조하세요.


비트는 다음에서 전송됩니다. 특정 속도전송은 초당 비트 또는 보드(baud) 단위로 측정됩니다. 따라서 9600보드는 9600bps와 같습니다. 메시지당 10비트를 전송하므로 이 속도에서는 1초에 960개의 메시지를 전송할 수 있습니다.

전송 속도 값은 메시지와 함께 전송되지 않으므로 수신기와 송신기에 동일한 전송 속도를 미리 설정해야 합니다. UART 인터페이스는 최대 5% 타이머 비동기화를 허용합니다. 이 간격 동안 올바른 정보 데이터를 수신할 수 있습니다.

모든 최신 마이크로컨트롤러에는 범용 마이크로컨트롤러가 포함되어 있다고 100% 확신할 수 있습니다. 직렬 인터페이스- UART. 이 포트를 사용하여 작업하는 방법을 알면 옛날 작업과 현대 작업을 조정할 수 있습니다. 전자 기기, 다양한 전자 장치와 데이터를 전송하거나 수신합니다.

최신 마이크로 컨트롤러에서는 UART 인터페이스 대신 완전히 호환되는 USART 표준(범용 비동기/동기 트랜시버)을 사용합니다.

USART는 UART 구성 측면에서 더 유연합니다. 추가 기능. USART를 사용하면 단어 길이를 더 많이 조정할 수 있습니다. 큰 간격 UART(8~9)보다 (5~9). USART에서는 동기식 및 비동기식 데이터 전송이 모두 가능합니다(UART에서는 비동기식만 수행됨). 동기 전송의 경우 데이터와 전원이라는 두 개의 라인 외에도 클럭 신호가 있는 추가 버스(XCK)가 사용됩니다. 이 설정을 사용하면 USART는 이미 다음과 교차합니다. SPI 인터페이스 SPI 인터페이스에서 "마스터"로 사용될 수 있습니다.

인터페이스가 비동기인(즉, 동기화 라인이 누락된) 전형적인 사례를 고려해 보겠습니다.

UART 인터페이스의 데이터 전송은 동일한 시간 간격으로 한 번에 한 비트씩 발생합니다. 이 기간은 UART 속도에 의해 설정되며 특정 연결 유형의 경우 초당 비트 수에 해당하는 보드(baud)로 표시됩니다. 전자 제품에는 일반적으로 허용되는 일반 속도 범위가 있습니다: 300; 600; 1200; 2400; 4800; 9600; 19200; 38400; 57600; 115200; 230400;460800; 921600 보드;

속도(S, baud)와 비트 지속 시간(T, 초)은 잘 알려진 공식에 의해 서로 관련됩니다.

데이터 바이트는 패킷으로 전송됩니다(첫 번째 비트는 데이터 바이트 앞에 오고 두 번째 비트는 뒤에 옵니다. 비트 수는 선택 사항입니다).


UART 인터페이스에서 데이터를 수신하고 전송하려면 두 개의 데이터 라인과 접지만 사용됩니다.

데이터 버스 전송(TXD 또는 TX);
데이터 라인 수신(RXD 또는 RX);
접지(GND).

로직 1과 0 레벨은 일반적인 TTL 레벨과 유사합니다.

통나무. "1" - +5볼트;
통나무. "0" 0볼트.

UART 유형 - RS-485 인터페이스

RS-485 및 RS-422 인터페이스를 기반으로 구축된 네트워크는 연선 케이블을 사용하여 연결된 트랜시버입니다. RS-485는 차동(균형) 데이터 전송 원리를 기반으로 합니다. 그 기본은 두 개의 전선을 통한 하나의 신호 전송을 기반으로합니다. 또한 인터페이스의 첫 번째 와이어(A)는 원래 신호를 전달하고 두 번째 와이어는 역 복사본을 전달합니다. 간단한 말로, A에 "1"이 있으면 B에 "0"이 있고 그 반대의 경우도 마찬가지입니다. 즉, 연선의 두 전선 사이에는 항상 전위차가 있습니다. "1"레벨에서는 양수이고 "0"에서는 "그것은 부정적이다.

이번 강의에서는 AVR 마이크로컨트롤러의 UART 인터페이스와 NET에서 이를 사용하는 방법에 대해 설명하겠습니다. UART는 범용 비동기 트랜시버입니다. 인터페이스 자체는 매우 일반적이며 거의 모든 언어에서 사용할 수 있습니다. AVR 마이크로컨트롤러, 유일한 예외는 Attiny13 마이크로 컨트롤러와 기타 몇 가지입니다. 데이터 전송은 동일한 시간 간격으로 비트 단위로 수행되며, 이 기간은 전송 속도로 지정됩니다(예: 표준 속도: 4800 보드, 9600 보드, 19200 보드, 38400 보드 등). 또한 연결 양쪽의 속도가 동일해야 한다는 점에도 유의해야 합니다. 그런데 수신기와 송신기는 독립적으로 작동합니다. UART 연결 RXD - 수신, TXD - 전송 및 GND - 공통(마이너스)의 세 가지 라인을 따라 수행됩니다. UART를 아래 그림과 같이 "역방향" RXD에서 TXD로, TXD에서 RXD로 연결해야 합니다.

UART를 사용하면 마이크로컨트롤러와 컴퓨터도 연결할 수 있지만 한 가지 문제가 있습니다. UART 인터페이스의 논리 레벨은 0~+5V이고 컴퓨터에서 RS-232 인터페이스의 논리 레벨은 -25~+5V일 수 있습니다. -3V 및 +3~+25V. 레벨 변환기는 이 문제를 해결하는 데 도움이 됩니다. 트랜지스터를 사용하여 조립할 수도 있고 특수 MAX232 마이크로 회로를 사용하는 것이 더 좋습니다. 가장 일반적인 MAX232 연결 다이어그램은 다음과 같습니다.

BASCOM-AVR에서 UART 작업

우선, UART 작업을 시작하기 전에 전송 속도를 지정해야 하며 이는 다음 명령을 사용하여 수행됩니다. $보드 =(속도). 예를 들어: $보드 = ​​9600.또한 다음 명령을 사용하여 클럭 생성기의 실제 주파수를 나타내는 것을 잊지 마십시오. $크리스탈 =(Hz 속도), 그렇지 않으면 프로그램 속도가 마이크로 컨트롤러의 속도와 일치하지 않아 결과적으로 데이터 수신 또는 전송이 올바르지 않게 됩니다. 명령 작성의 예 $크리스탈 8MHz의 주파수에서: $크리스털 = 8000000. 그런데 BASCOM-AVR에서 설정 창을 여는 것이 좋습니다(옵션>컴파일러>통신):

이 설정 창에서 UART 속도를 지정할 수 있습니다. 클럭 주파수클럭 생성기를 확인하고 선택한 클럭 주파수에서 오류 비율을 확인하세요. 그러나 프로그램 자체에서 직접 속도와 클럭 주파수를 지정하는 것이 좋습니다. 그런데 4MHz 클럭 주파수에서 오류 비율은 매우 작지만(0.16%) 여전히 존재합니다. 오류 비율을 0으로 만들려면 UART 속도의 배수인 클록 주파수를 선택해야 합니다. 예를 들어, 클록 주파수가 3.6864MHz이고 UART 속도가 115,200보드인 경우 오류율은 0이 됩니다.

따라서 UART의 클럭 주파수와 속도를 지정한 후 인터페이스 자체 작업을 시작할 수 있습니다. UART에 무언가를 보내려면 다음 명령이 있습니다. 인쇄(변수 또는 따옴표 안의 텍스트) 사용 예는 다음과 같습니다. "Hello, world!"를 인쇄하세요.. 따옴표 안의 텍스트 외에도 여러 변수를 세미콜론으로 한 번에 구분하여 표시할 수도 있습니다. 예: "무게:" 인쇄 ; ㅏ; "킬로그램"그 쯤 "안녕하세요"를 인쇄하세요. "세계!". UART에서도 수신할 수 있습니다. 이는 다음 명령을 사용하여 수행됩니다. 입력(보내기 위해 따옴표로 묶인 텍스트 또는 변수) , (수신된 데이터를 어디에 쓸지 변수). 보시다시피 모든 것이 매우 간단합니다. 먼저 UART로 전송될 텍스트를 따옴표로 쓴 다음 UART에서 수신된 데이터가 기록될 변수를 나타냅니다. 예는 다음과 같습니다. "무게:"를 입력하세요.

실제로 UART로 작업하기

자, 이제 실제로 UART를 "조향"해 보겠습니다. 먼저 간단한 회로를 조립하겠습니다.

그럼 전화를 걸어보겠습니다 간단한 프로그램, (얻은 지식을 사용하여) 컴파일합니다. 여기 그녀가 있습니다:

$crystal = 8000000 $baud = 9600 Dim A를 바이트로 인쇄 "Hello, world!" 인쇄 "Hello http://site" 입력 "Size:" , A 인쇄 "Size=" ; ㅏ; "바이트" 끝

그리고 이 프로그램은 다음과 같이 작동합니다. 먼저 UART에 텍스트를 보낸 다음 변수에 기록될 데이터(이 경우 숫자)를 수신하기를 기다립니다. 나중에 변경 사항과 함께 텍스트를 보내드립니다. 컴파일하기가 너무 게으른 분들을 위해 강의용 파일이 준비된 펌웨어. 마이크로 컨트롤러를 플래시하고 마이크로 컨트롤러 핀 RXD, TXD(위에서 쓴 대로 연결) 및 GND를 연결합니다. COM 포트~에컴퓨터(레벨 변환기를 통해) 또는 USB(USB - UART 어댑터)에 연결하여 COM 포트로 작업하기 위해 컴퓨터에서 프로그램을 엽니다. 예: Bray 터미널, 하이퍼 터미널 또는 터미널 에뮬레이터 BASCOM-AVR에서 연결한 COM 포트를 표시하고, 전송 속도를 표시하고, 프로그램 창을 살펴보고, 마이크로 컨트롤러에 전원을 공급하고 기뻐하십시오. 마이크로컨트롤러 펌웨어를 플래시한 후 퓨즈 비트를 필요한 생성기 클럭 주파수(이 경우(위 프로그램의 경우)) 8MHz로 설정해야 한다는 점도 고려해야 합니다. 8MHz에서는 마이크로컨트롤러의 내부 클록 생성기를 사용하여 퓨즈 비트를 다음과 같이 설정할 수 있습니다(의 경우).

기사 및 생활 꿀팁

많은 사용자가 보드를 PC에 연결하는 것과 관련된 모든 것에 관심이 있습니다. 동시에 그들은 궁금해한다. 휴대전화의 uart 설정이 뭐야?. 우리 기사는 특히 이 도구와 모바일 기술 분야에서의 적용에 대해 다룹니다.

전화기의 UART는 무엇이며 이를 구성해야 하는 이유는 무엇입니까?

와 함께 영어로 UART(범용 비동기식 수신기-송신기)는 범용 비동기식 수신 및 전송 수단으로 해석될 수 있습니다. 안에 현재가장 유명할 뿐만 아니라 꽤 유명합니다. 오래된 프로토콜정보 전송.

가장 일반적인 UART 프로토콜은 RS-232, 즉 컴퓨터에 설치된 COM 포트입니다. 데스크톱 컴퓨터. 그 특징은 오늘날에도 관련성을 잃지 않고 적극적으로 사용된다는 사실에 있습니다. 산업 표준인 RS-485도 널리 알려져 있습니다.

UART1과 UART2가 연결에 사용된다는 점을 추가해 보겠습니다. 펌웨어 케이블, 컴퓨터에 연결하는 것도 가능합니다. 당사의 시스템 커넥터에 셀룰러 장치 UART1, UART2 및 USB와 같은 포트가 표시됩니다. 실제로 적외선 포트도 UART라는 점을 추가해 보겠습니다. 유일한 차이점은 데이터 전송 방법(유선이 아닌 적외선)입니다. SIM 카드도 이 프로토콜을 사용하지만 정보를 전송하는 반이중 방법을 제공합니다.

특별한 관심인터페이스 페어링 요청을 받을 자격이 있습니다. 오늘날 이를 위한 특별한 미세 회로가 있습니다. 좋은 예 UART를 USB와 인터페이스하도록 설계된 ft232rl 칩입니다. 그러나 더 저렴하지만 매우 흥미로운 아날로그 인터페이스 수단이 있기 때문에 그것에 매달려서는 안됩니다.

UART 인터페이스가 필요한 이유는 무엇입니까? 일반적으로 장치의 성능을 확인하고 조정할 수 있습니다.

종종 제조업체 모바일 기술이 프로토콜을 지원하는 데 집중하지 마십시오. 이를 확실히 확인하려면 UART가 있는 프로세서의 설명서를 다운로드하는 것이 좋습니다. 우리는 우리의 프로토콜을 사용하여 장치에 물리적으로 접근할 수 있을 뿐만 아니라 우리의 재량에 따라 장치의 작동을 구성할 수도 있습니다. 종종 제조업체가 의도한 방식이 전혀 아닐 수도 있습니다.

그래서 우리는 그것이 무엇인지 알아냈습니다. 이 인터페이스. 그러나 전화기의 uart 설정을 이해하면 다음과 같은 정보만 얻을 수 있습니다. 자세한 지침설정으로.

지침 UART 구성전화로

프로토콜을 구성하려면 다음을 호출하세요. 엔지니어링 메뉴*#3646633# 조합을 눌러 전화한 후 다음 메뉴로 이동합니다. 이렇게 하려면 "장치" > "UART 설정" > "UART 설정"으로 이동하세요.

"PS Config" 및 "TST Config"와 같은 항목이 표시됩니다. 첫 번째 지점은 USB 케이블을 통해 PC와 정보를 교환하는 역할을 하고, 두 번째 지점은 개발자가 오작동을 식별하는 소프트웨어 디버깅에 필요합니다.

각 항목에는 흐름을 장치(UART 1-3 또는 USB)로 리디렉션하기 위한 매개변수와 이러한 흐름의 속도가 포함되어 있습니다. 테스트 포트, 즉 "TST Config"가 필요하지 않으며 건드리지 않습니다. "PS Config"에 관해서는 주의해야 할 사항이 있습니다. 특정 설정. 값을 "UART1"로 설정합니다. PC의 드라이버는 일반적으로 비트 전송률(예: 115200)을 나타냅니다. UART1(또는 "Auto")에 대해 동일한 속도를 설정합니다.

또한 UART1 대신에 “USB Port”를 설정할 수도 있지만, 이 경우 USB 케이블을 연결할 때 UART1 포트가 보장되지는 않습니다. USB 모드표시됩니다. 장치를 재부팅하고 다시 연결해 보십시오.

프린터, 마우스, 모뎀에 거대하고 투박한 커넥터와 두꺼운 케이블이 있던 시절을 기억하십니까? 문자 그대로 컴퓨터에 나사로 고정되어야 했던 것? 이러한 UART 구성 요소가 컴퓨터와 통신하는 데 사용되었다는 사실을 아는 사람은 많지 않습니다. 기존 케이블과 커넥터를 거의 완전히 교체했습니다. USB 기술. 이 기사에서 설명하는 UART 인터페이스는 과거의 일이 아닙니다. 그들은 많은 DIY 전자 프로젝트에 사용됩니다. GPS 연결, 블루투스 및 리더 모듈 RFID 카드 Pi, Arduino 또는 기타 마이크로 컨트롤러에.

UART 인터페이스: 설명

UART는 범용 비동기 수신기/송신기를 나타냅니다. 아니다 통신 프로토콜, SPI 및 I2C와 같은 마이크로 컨트롤러의 물리적 회로. 주요 목적은 정보를 전송하고 수신하는 것입니다. 기술의 가장 좋은 점 중 하나는 두 개의 전선만 사용한다는 것입니다.

UART 인터페이스는 서로 통신하는 두 장치입니다. 송신 소스는 CPU 등 제어 장치의 정보를 직렬 형식으로 변환하고 이를 수신 장치에 대한 값으로 변환하는 수신 UART에 직렬 순서로 전송합니다. 두 장치 간에 정보를 전송하려면 두 개의 전선만 필요합니다.

UART 통신 소개

RS485 UART는 데이터를 비동기식으로 전송합니다. 이는 전송 장치에서 수신 장치로 비트 출력을 동기화하는 신호가 없음을 의미합니다. 클럭 신호 대신 전송 UART는 전송된 패킷의 시작 및 끝 비트를 추가합니다. 이러한 매개변수는 문서의 시작과 끝을 정의합니다.

수신 UART가 시작 비트를 감지하면 전송 속도라고 하는 특정 주파수에서 수신 비트를 읽기 시작합니다. 데이터 속도는 비트/초 단위로 표현되는 속도 측정입니다. 두 장치 모두 거의 동일한 전송 속도로 작동해야 합니다. 송신 장치와 수신 장치 간의 전송 속도는 10% 정도 다를 수 있습니다.

두 장치 모두 동일한 패킷 구조를 보내고 받도록 구성되어야 합니다.

UART - 정의가 무엇이며 어떻게 작동하나요?

정보를 전송하려는 UART는 데이터 버스에서 정보를 수신합니다. 프로세서, 메모리 또는 마이크로 컨트롤러와 같은 다른 장치로 정보를 보내는 데 사용됩니다. 송신 UART는 데이터 버스로부터 병렬 데이터를 수신한 후 시작 비트, 패리티 비트 및 정지 비트를 추가하여 데이터 패킷을 생성합니다. 그런 다음 패킷은 순차적으로 부분적으로 출력됩니다. 수신 UART는 해당 핀에서 데이터 비트를 읽습니다. 수신 UART는 정보를 다시 병렬 형식으로 변환하고 시작 비트와 정지 비트를 제거합니다. 마지막으로 수신 UART는 수신측 데이터 버스와 병렬로 데이터 패킷을 전송합니다.

전송선은 일반적으로 다음 위치에 유지됩니다. 높은 레벨정보를 전송하지 않을 때의 긴장. 시작하려면 UART가 한 클럭 주기에 전송 라인을 높은 수준에서 낮은 수준으로 끌어옵니다. 수신 UART가 고전압에서 저전압으로의 전환을 감지하면 전송 속도로 데이터 프레임의 비트를 읽기 시작합니다.

기술적 기능들

기본 UART 시스템은 Tx(직렬 데이터 전송), Rx(직렬 데이터 수신) 및 접지의 세 가지 신호를 사용하여 안정적인 중간 속도의 전이중 통신을 제공합니다. SPI, I2C 등 다른 프로토콜과 달리 사용자가 제공하는 대로 클럭 신호가 필요하지 않습니다. 하드웨어 UART에는 시간 정보가 필요합니다.

UART 인터페이스 설명의 일반적인 데이터 신호는 단순히 논리 로우와 논리 하이 사이를 전환하는 전압입니다. 수신기는 신호를 샘플링할 시기를 아는 경우에만 이러한 논리 상태를 디지털 데이터로 올바르게 변환할 수 있습니다. 이는 별도의 클록 신호를 사용하여 쉽게 수행할 수 있습니다. 예를 들어, 송신기는 각 상승 에지에서 데이터 신호를 업데이트하고, 수신기는 각 하강 에지에서 데이터를 샘플링합니다.

핵심 용어

시작 비트는 단일 바이트 전송의 첫 번째 비트입니다. 이는 데이터 라인이 유휴 상태에서 벗어나고 있음을 나타냅니다. 유휴 상태는 일반적으로 로직 하이이므로 시작 비트는 로직 로우입니다.

시작 비트는 약간의 서비스 정보입니다. 이는 수신기와 송신기 사이의 통신을 용이하게 하지만 의미 있는 데이터를 전송하지는 않는다는 것을 의미합니다.

정지 비트 - 마지막 비트단일 바이트 전송. 그 논리 레벨은 신호의 유휴 상태, 즉 논리 최대값과 동일합니다.

단계별 절차

데이터 패킷의 완료를 알리기 위해 송신 UART는 다음과 같은 데이터 라인을 연결합니다. 낮은 전압 2비트 기간 동안 고전압으로 전환됩니다.

UART 인터페이스 설명:

    송신 UART는 데이터 버스에서 병렬로 데이터를 수신하고 추가합니다. 시작 비트, 패리티 비트 및 정지 비트를 데이터 프레임에 추가합니다.

    전체 패킷은 전송에서 수신 UART로 순차적으로 전송되며, UART는 미리 구성된 데이터 속도로 데이터 라인을 샘플링합니다.

    수신 UART는 데이터 프레임에서 시작 비트, 패리티 비트, 정지 비트를 버리고 직렬 데이터를 다시 병렬로 변환하여 수신측 데이터 버스로 전송합니다.

    컴퓨터에서 받은 바이트를 다음으로 변환합니다. 병렬 회로나가는 전송을 위해 하나의 직렬 비트 스트림으로 변환됩니다.

    수신 전송 시 직렬 비트 스트림을 컴퓨터가 처리하는 바이트로 변환합니다.

    나가는 전송에 패리티 비트(선택한 경우)를 추가하고, 들어오는 바이트의 패리티를 확인하고(선택한 경우) 패리티 비트를 삭제합니다.

    나가는 전송에 대한 시작 및 끝 구분 기호를 추가하고 들어오는 전송에서 제거합니다.

장점과 단점

완벽하지는 않지만 UART는 수행하는 작업에 꽤 능숙합니다. 프로젝트 요구 사항에 맞는지 결정하는 데 도움이 되는 몇 가지 장단점은 다음과 같습니다.

장점:

    전선은 2개만 사용됩니다.

    동기화 신호가 없습니다.

    오류 검사를 위한 패리티 비트가 있습니다.

    데이터 패킷 구조는 양측이 구성되어 있는 경우 변경될 수 있습니다.

    잘 문서화되어 널리 사용되는 방법입니다.

결점:

    데이터 프레임 크기는 최대 9비트로 제한됩니다.

    다중 슬레이브 또는 다중 마스터를 지원하지 않습니다.

또한 각 Arduino UART 인터페이스의 전송 속도는 서로 10% 이내여야 합니다.



질문이 있으신가요?

오타 신고

편집자에게 전송될 텍스트: