전체 글 (18) 썸네일형 리스트형 [KOSTA수업정리] beginning stm32 원서 정리3(USART) USART / UART Peripheral시리얼 직렬 통신입니다. 다들 잘 아시겠지만 MCU를 이용해 작업을 할 때 디버깅을 하거나 기타 작업을 해야할 일이 있을 것입니다. STM32에서는 LED를 제공해서 이 led를 이용해서 디버깅을 하는 것도 하나의 방법이겠지만 사실 led만으로 디버깅을 하는데는 한계가 분명있습니다. STM32에서는 USART/UART 방식을 통해서 디버깅을 할 수 있습니다. 지금부터는 그냥 UART로 통일해서 하겠습니다. UART는 Tx로 데이터를 보내고, Rx선을 이용해서 데이터를 받습니다. 동시에 신호를 주고 받지는 못하고 보내거나 받거나만 할 수 있는 반이중방식입니다. UART는 비동기/동기 방식이 있습니다. 먼저, 비동기 방식은 타이밍을 맞추지 않는 방식입니다. 비동.. [KOSTA수업정리] beginning stm32 원서 정리2(FreeRTOS) FreeRTOS는 임베디드 리눅스가 지원되지 않는 리소스가 제한된 환경에서 실시간성을 보장하고 멀티태스킹을 효율적으로 수행할 수 있도록 지원하는 경량 OS입니다. 1. MultiTasking and Scheduling-> 대부분의 아두이노와 STM32 보드는 싱글코어 기반 MCU를 사용합니다. 아두이노는 기본적으로 single task 구조이며, setup()과 loop() 함수 내에서 단일 스택을 사용해 동작합니다. 따라서 센서 값을 주기적으로 읽기 위해서는 loop 내에서 폴링 방식으로 값을 확인해야 합니다. 하지만 폴링 방식은 이벤트 발생 여부를 계속 확인해야 하므로 비효율적일 수 있습니다. 예를 들어서 loop안에 if(flag) 이런식으로 flag 변수를 둬서 이벤트가 발생했다면 어떤 로직 처.. [HMobility] 에러 체크 알고리즘(Parity Bit) 자동차, 항공우주 등에서는 여러 이유로 데이터가 손상되서 전송되고는 합니다. 위성의 경우 패킷 형태로 데이터를 내려보내는 것으로 알고 있는데 0,1의 바이너리 데이터로 전송되게 됩니다. 0과 1을 구분하는 것은 전압의 기준에 따라 정해지기 때문에 0으로 전송되어야 할 것이 1로 전송된다던가 하는 문제점이 있을 수 있습니다. 차량 또한 마찬가지입니다. 와이어링 하네스를 거쳐서 데이터가 전송이 되는데 그 길이만 해도 ECU에서 ECU로 데이터를 전송할 때 노이즈가 끼기 마련이고 데이터를 받았을 때 이 데이터의 무결성을 보장할 수는 없습니다. 이를 위해서 에러를 체크하는데 CAN의 경우는 에러가 검출이 되면 에러가 껴있는 데이터를 재전송을 하는 방식으로 신뢰성을 보장하기도 합니다. 하지만 UDP 이더넷의 경우.. 이전 1 2 3 4 ··· 6 다음