python-ntrexlab-usb2can-vcp


Namepython-ntrexlab-usb2can-vcp JSON
Version 0.0.7 PyPI version JSON
download
home_pagehttps://github.com/ckdo8008/python_ntrexlab_usb2can_vcp
Summary이 모듈은 ntrexlab의 usb2can VCP제품을 파이썬으로 can모듈을 사용하기 위해서 작성된 인터페이스 모듈입니다.
upload_time2024-08-07 01:36:01
maintainerNone
docs_urlNone
authorchangu
requires_python>=3.10
licenseNone
keywords
VCS
bugtrack_url
requirements python-can pyserial
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # ntrexlab usb2can vcp 파이썬 CAN 인터페이스
이 모듈은 ntrexlab의 usb2can VCP제품을 파이썬으로 can모듈을 사용하기 위해서 작성된 인터페이스 모듈입니다.
ntrexlab에서는 자체툴만 제공해서 임의로 제작되었습니다. 필요에 의해서 작성한 모듈이기 때문에 업데이트가 느릴 수 있습니다.

## ntrexlab usb2can VCP

> MW USB2CAN(VCP) 소개
>> MW USB2CAN(VCP)는 한 개 포트의 CAN 프로토콜을 USB의 VCP(Virtual COM Port) 프로토콜로 변환하는 장치입니다. FT232 칩을 사용하여 USB와 MCU간 비동기 시리얼 데이터를 주고받는 형태로 데이터 전송률은 최대 300K byte/second입니다

<strong>FIFO 제품은 갖고 있는게 없어서 구현하지 않습니다.</strong>

### MW USB2CAN(VCP) 특징
* 속도가 느림
* CAN Bus의 속도는 1M까지 가능하지만 변경과정에서 병목현상이 발생함
  * 예외로 Send 후 딜레이처리 필요(변환 과정)
* CAN bus의 모니터링이 가능함
* 초기화 과정에서 통신 설정 필요
* 전문 송수신에 STX와 ETX가 필요

### MW USB2CAN(VCP) 초기화 구현
메세지 송수신여부, 복구방식, 통신속도를 지정하였습니다.

## 요구사항
Python 3.10 이상을 사용하여야 합니다. (match-case 사용, match-case를 if-elif 문으로 변경하여 사용이 가능합니다.)
pyserial
python-can

## 설치
```
pip install python_ntrexlab_usb2can_vcp
```

## 사용
```
import can
from ntrexlab_usb2can_vcp import MW_USB2CAN_VCP

bus = can.Bus(interface="mw_usb2can_vcp", channel="COM11", bitrate=500000)
```

## 그 밖에
* 해외 판매는 안하는 것 같아서 한글로만 작성합니다.
* USB2CAN 제품 중에 저렴한 제품이 적어서 모듈을 직접 작성했습니다. 마스터 용으로는 사용해도 좋지만 슬레이브로는 사용을 지양합니다.(변환 과정 및 지연 시간으로 누락이 발생됩니다.)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/ckdo8008/python_ntrexlab_usb2can_vcp",
    "name": "python-ntrexlab-usb2can-vcp",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": null,
    "author": "changu",
    "author_email": "ckdo8008@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/04/ff/8fc45e6c6eb4893bb4286abe6e37abf17665f6ca816fd2b6c7afaeecb695/python_ntrexlab_usb2can_vcp-0.0.7.tar.gz",
    "platform": null,
    "description": "# ntrexlab usb2can vcp \ud30c\uc774\uc36c CAN \uc778\ud130\ud398\uc774\uc2a4\n\uc774 \ubaa8\ub4c8\uc740 ntrexlab\uc758 usb2can VCP\uc81c\ud488\uc744 \ud30c\uc774\uc36c\uc73c\ub85c can\ubaa8\ub4c8\uc744 \uc0ac\uc6a9\ud558\uae30 \uc704\ud574\uc11c \uc791\uc131\ub41c \uc778\ud130\ud398\uc774\uc2a4 \ubaa8\ub4c8\uc785\ub2c8\ub2e4.\nntrexlab\uc5d0\uc11c\ub294 \uc790\uccb4\ud234\ub9cc \uc81c\uacf5\ud574\uc11c \uc784\uc758\ub85c \uc81c\uc791\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \ud544\uc694\uc5d0 \uc758\ud574\uc11c \uc791\uc131\ud55c \ubaa8\ub4c8\uc774\uae30 \ub54c\ubb38\uc5d0 \uc5c5\ub370\uc774\ud2b8\uac00 \ub290\ub9b4 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n\n## ntrexlab usb2can VCP\n\n> MW USB2CAN(VCP) \uc18c\uac1c\n>> MW USB2CAN(VCP)\ub294 \ud55c \uac1c \ud3ec\ud2b8\uc758 CAN \ud504\ub85c\ud1a0\ucf5c\uc744 USB\uc758 VCP(Virtual COM Port) \ud504\ub85c\ud1a0\ucf5c\ub85c \ubcc0\ud658\ud558\ub294 \uc7a5\uce58\uc785\ub2c8\ub2e4. FT232 \uce69\uc744 \uc0ac\uc6a9\ud558\uc5ec USB\uc640 MCU\uac04 \ube44\ub3d9\uae30 \uc2dc\ub9ac\uc5bc \ub370\uc774\ud130\ub97c \uc8fc\uace0\ubc1b\ub294 \ud615\ud0dc\ub85c \ub370\uc774\ud130 \uc804\uc1a1\ub960\uc740 \ucd5c\ub300 300K byte/second\uc785\ub2c8\ub2e4\n\n<strong>FIFO \uc81c\ud488\uc740 \uac16\uace0 \uc788\ub294\uac8c \uc5c6\uc5b4\uc11c \uad6c\ud604\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.</strong>\n\n### MW USB2CAN(VCP) \ud2b9\uc9d5\n* \uc18d\ub3c4\uac00 \ub290\ub9bc\n* CAN Bus\uc758 \uc18d\ub3c4\ub294 1M\uae4c\uc9c0 \uac00\ub2a5\ud558\uc9c0\ub9cc \ubcc0\uacbd\uacfc\uc815\uc5d0\uc11c \ubcd1\ubaa9\ud604\uc0c1\uc774 \ubc1c\uc0dd\ud568\n  * \uc608\uc678\ub85c Send \ud6c4 \ub51c\ub808\uc774\ucc98\ub9ac \ud544\uc694(\ubcc0\ud658 \uacfc\uc815)\n* CAN bus\uc758 \ubaa8\ub2c8\ud130\ub9c1\uc774 \uac00\ub2a5\ud568\n* \ucd08\uae30\ud654 \uacfc\uc815\uc5d0\uc11c \ud1b5\uc2e0 \uc124\uc815 \ud544\uc694\n* \uc804\ubb38 \uc1a1\uc218\uc2e0\uc5d0 STX\uc640 ETX\uac00 \ud544\uc694\n\n### MW USB2CAN(VCP) \ucd08\uae30\ud654 \uad6c\ud604\n\uba54\uc138\uc9c0 \uc1a1\uc218\uc2e0\uc5ec\ubd80, \ubcf5\uad6c\ubc29\uc2dd, \ud1b5\uc2e0\uc18d\ub3c4\ub97c \uc9c0\uc815\ud558\uc600\uc2b5\ub2c8\ub2e4.\n\n## \uc694\uad6c\uc0ac\ud56d\nPython 3.10 \uc774\uc0c1\uc744 \uc0ac\uc6a9\ud558\uc5ec\uc57c \ud569\ub2c8\ub2e4. (match-case \uc0ac\uc6a9, match-case\ub97c if-elif \ubb38\uc73c\ub85c \ubcc0\uacbd\ud558\uc5ec \uc0ac\uc6a9\uc774 \uac00\ub2a5\ud569\ub2c8\ub2e4.)\npyserial\npython-can\n\n## \uc124\uce58\n```\npip install python_ntrexlab_usb2can_vcp\n```\n\n## \uc0ac\uc6a9\n```\nimport can\nfrom ntrexlab_usb2can_vcp import MW_USB2CAN_VCP\n\nbus = can.Bus(interface=\"mw_usb2can_vcp\", channel=\"COM11\", bitrate=500000)\n```\n\n## \uadf8 \ubc16\uc5d0\n* \ud574\uc678 \ud310\ub9e4\ub294 \uc548\ud558\ub294 \uac83 \uac19\uc544\uc11c \ud55c\uae00\ub85c\ub9cc \uc791\uc131\ud569\ub2c8\ub2e4.\n* USB2CAN \uc81c\ud488 \uc911\uc5d0 \uc800\ub834\ud55c \uc81c\ud488\uc774 \uc801\uc5b4\uc11c \ubaa8\ub4c8\uc744 \uc9c1\uc811 \uc791\uc131\ud588\uc2b5\ub2c8\ub2e4. \ub9c8\uc2a4\ud130 \uc6a9\uc73c\ub85c\ub294 \uc0ac\uc6a9\ud574\ub3c4 \uc88b\uc9c0\ub9cc \uc2ac\ub808\uc774\ube0c\ub85c\ub294 \uc0ac\uc6a9\uc744 \uc9c0\uc591\ud569\ub2c8\ub2e4.(\ubcc0\ud658 \uacfc\uc815 \ubc0f \uc9c0\uc5f0 \uc2dc\uac04\uc73c\ub85c \ub204\ub77d\uc774 \ubc1c\uc0dd\ub429\ub2c8\ub2e4.)\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "\uc774 \ubaa8\ub4c8\uc740 ntrexlab\uc758 usb2can VCP\uc81c\ud488\uc744 \ud30c\uc774\uc36c\uc73c\ub85c can\ubaa8\ub4c8\uc744 \uc0ac\uc6a9\ud558\uae30 \uc704\ud574\uc11c \uc791\uc131\ub41c \uc778\ud130\ud398\uc774\uc2a4 \ubaa8\ub4c8\uc785\ub2c8\ub2e4.",
    "version": "0.0.7",
    "project_urls": {
        "Homepage": "https://github.com/ckdo8008/python_ntrexlab_usb2can_vcp"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b7746071ea5bc12b8ad62f7acde4b95ddf6959297ef3c6a1729a60efc757de71",
                "md5": "a9e6032bdbbf8fa775a945022fc65728",
                "sha256": "abe109ae24cd75ee2d7f450af8c789e782bcc82ef867da87b01dab883bb26cb4"
            },
            "downloads": -1,
            "filename": "python_ntrexlab_usb2can_vcp-0.0.7-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "a9e6032bdbbf8fa775a945022fc65728",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 6844,
            "upload_time": "2024-08-07T01:36:01",
            "upload_time_iso_8601": "2024-08-07T01:36:01.020380Z",
            "url": "https://files.pythonhosted.org/packages/b7/74/6071ea5bc12b8ad62f7acde4b95ddf6959297ef3c6a1729a60efc757de71/python_ntrexlab_usb2can_vcp-0.0.7-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "04ff8fc45e6c6eb4893bb4286abe6e37abf17665f6ca816fd2b6c7afaeecb695",
                "md5": "31429f231f233acc4546e5b14cc1d142",
                "sha256": "e089919feab3df15ddc3ab3b3515350d575df64f8575e27f41f3e4b0e8515e96"
            },
            "downloads": -1,
            "filename": "python_ntrexlab_usb2can_vcp-0.0.7.tar.gz",
            "has_sig": false,
            "md5_digest": "31429f231f233acc4546e5b14cc1d142",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 6538,
            "upload_time": "2024-08-07T01:36:01",
            "upload_time_iso_8601": "2024-08-07T01:36:01.808248Z",
            "url": "https://files.pythonhosted.org/packages/04/ff/8fc45e6c6eb4893bb4286abe6e37abf17665f6ca816fd2b6c7afaeecb695/python_ntrexlab_usb2can_vcp-0.0.7.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-07 01:36:01",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ckdo8008",
    "github_project": "python_ntrexlab_usb2can_vcp",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "python-can",
            "specs": [
                [
                    "==",
                    "4.4.2"
                ]
            ]
        },
        {
            "name": "pyserial",
            "specs": [
                [
                    "==",
                    "3.5"
                ]
            ]
        }
    ],
    "lcname": "python-ntrexlab-usb2can-vcp"
}
        
Elapsed time: 0.26041s