본문 바로가기

Study501

PCAN USB 데이터 가져와서 뿌리기 예제 앞서 PCAN USB 연결/해제 하기 에서 UI와 PCAN 연결/해제를 구현해 보았습니다. 우선 타이머를 설정합니다. 타이머는 널널하게 1ms로 설정하였습니다. 1ms마다 readmessage()를 실행하게 됩니다. private void timer1_Tick(object sender, EventArgs e) { ReadMessage(); } readmessage에서는 can id를 검색해서 필요한 id만 가져오게 됩니다. private void ReadMessage() { TPCANMsg CANMsg; TPCANTimestamp CANTimeStamp; TPCANStatus stsResult; strMsg = new StringBuilder(256); stsResult = PCANBasic.Read(m.. 2021. 10. 27.
PCAN USB 연결/해제 하기 C#을 이용하여 PCAN으로 데이터를 읽어와서 UI로 뿌려주는 예제입니다. peak-can 사이트에 가시면 간단한 API 소스를 다운받을 수 있는데 특정 Msg만 가져와서 UI로 뿌려보겠습니다. 우선 API를 다운 받으셔서 PCANBasic.cs파일을 추가해 주셔야합니다. UI는 위와 같이 배터리 SOC를 쉽게 알아볼 수 있도록 UI를 만들었습니다. Initialize가 PCAN을 연결하는 것이고, Release는 연결을 해제하는 버튼입니다. 1.연결하기 연결시의 코드입니다. TPCANStatus stsResult; strMsg = new StringBuilder(256); m_PcanHandle = PCANBasic.PCAN_USBBUS1; try{ stsResult = PCANBasic.Initial.. 2021. 9. 2.
Endian(엔디안) 엔디안은 바이트를 배열하는 방식을 말하는데 크게 빅 엔디안(Big endian)과 리틀 엔디안(Little endian)이 있으며, 미들 엔디안(Middle endian)을 사용하기도 합니다. 빅 엔디안은 바이트를 나열할 때 순서대로 나열하는 방식이고, 리틀 엔디안은 반대로 나열하는 방식입니다. 0x1234 예를 들어 0x1234라는 바이트가 있다면 빅 엔디안은 0x12 0x34 로 표현되고 리틀 엔디안은 0x34 0x12 로 표현됩니다. 빅 엔디안은 모토롤라 방식이라고도 하며, 리틀 엔디안은 인텔 방식이라고 말하기도 합니다. 두가지 방식 모두 각각의 장단점이 있으므로, 어느 것이 좋다고 말할 수는 없습니다. 2021. 8. 27.
FAN 의 Air Flow 차이 팬모터의 역할은 공기를 흘려보내는 역할을 합니다. 공기를 흘려 열을 식히거나 연기를 빼내거나 하는 용도로 사용되는데, 팬모터의 주요 Spec중 Air Flow라는게 있습니다. Air Flow는 분당 공기를 얼마나 많이 흘리느냐 하는 공기 흐름 능력을 말합니다. 위 사진은 델타사의 모델중 일부입니다. 같은 24V전원에 같은 크기(120mmX120mm)이지만 Air Flow 값이 다릅니다. 뒤쪽에 RPM을 보면 팬속도에 비례하여 Air Flow, Noise, Power가 증가하는 것을 볼 수 있습니다. Air Flow는 CFM이라는 단위를 사용하는데 1CFM = 1ft³/min = 28.3L/min 이 됩니다. 즉 264.62CFM은 264.62 X 28.3 = 7489L/min으로 분당 7489L의 공기를.. 2021. 6. 15.
SPC5 STUDIO 개발환경 구성하기 SPC5 STUDIO는 ST의 자동차용 제품 설계를 위한 펌웨어 개발툴입니다. SPC5 STUDIO 다운로드 SPC5 STUDIO는 위 링크를 통해 무료로 다운로드가 가능하며, 회원가입을 하셔야 합니다. 개발보드는 SPC584B-DISP를 사용하였습니다. SPC584B-DISP는 25만원 정도면 구입가능합니다. 디버거의 경우 Trace32나 PLS를 이용해야 하는데 위 개발보드의 경우 USB를 통해 PLS 디버거를 이용가능합니다. 이제 SPC5 STUDIO를 실행하고 개발보드를 연결합니다. 간단한 테스트를 위해 오른쪽 TAB에 있는 Import samples from application library를 선택합니다. 여러 개발보드들이 나오는데 가장 비슷한 SPC584B70E5를 선택합니다. 이미 개발보드.. 2021. 5. 26.
CAN제품 개발시 ID 필터링의 중요성 Can 통신의 경우 bus형태의 통신라인으로 연결되어 있습니다. 그렇다보니 한 디바이스가 보낸 데이터를 모든 디바이스에서 수신받게 됩니다. 이때에 자기가 사용하는 것과 사용하지 않는 MSG ID를 적절히 필터링하여 사용하여야 합니다. 필터링의 방법으로는 ID LIST방식과 ID MASK방식이 있는데, ID LIST는 받을 ID 하나씩 일일이 적어서 필터링하며, ID MASK의 경우 연속된 ID를 필터링할 경우 범위를 지정하여 필터링 합니다. STM시리즈의 CAN 필터링 방법은 이곳을 눌러 확인하실 수 있습니다. ID를 필터링하지 않을 경우 받은 데이터를 처리하지 않을 시 잘못하면 받은 메세지 ID에 내가 보내는 데이터를 넣어서 보내거나 엉뚱한 데이터를 보내게 되어 통신상에 심각한 오류를 일으킬 수 있습니.. 2021. 4. 27.

인기글