Bài viết này trình bày kết quả nghiên cứu và thiết kế một thiết bị ngoại vi không dây chuẩn USB (Universal Serial Bus) được gọi là “Touch USB”, thông qua thiết bị này nhiều ngoại vi khác nhau có thể kết nối với máy tính qua cổng USB.
Trang 1Nghiên cứu khoa học công nghệ
Tạp chí Nghiên cứu KH&CN quân sự, Số 57, 10 - 2018 73
THIẾT KẾ THIẾT BỊ NGOẠI VI KHÔNG DÂY CHUẨN USB
HỖ TRỢ ĐIỀU KHIỂN, CẤU HÌNH HỆ THỐNG
Nguyễn Trung Hiếu*, Hoàng Văn Hữu, Vũ Văn Thuận
Tóm tắt: Bài báo này trình bày kết quả nghiên cứu và thiết kế một thiết bị ngoại
vi không dây chuẩn USB (Universal Serial Bus) được gọi là “Touch USB”, thông qua thiết bị này nhiều ngoại vi khác nhau có thể kết nối với máy tính qua cổng USB Nhóm nghiên cứu đã thực hiện thiết kế thiết bị phần cứng, phần mềm điều khiển, viết chương trình điều khiển giao tiếp ngoại vi của một số thiết bị khác nhau kết nối với máy tính thông qua Touch USB Việc sử dụng thêm module nRF24L01 giúp thực hiện truyền dữ liệu không dây từ thiết bị ngoại vi đến máy tính qua đó có thể thực hiện cấu hình từ xa cho máy tính/bộ xử lý trung tâm một cách tiện lợi chỉ thông qua Touch USB Trong bài báo này chúng tôi sẽ trình bày việc thiết kế Touch USB và đề xuất các ứng dụng của nó trong thực tế
Từ khóa: USB; STM32F103; nRF24L01; Vi điều khiển, touchpad; Cảm ứng điện dung
1 GIỚI THIỆU
Trong thời đại bùng nổ công nghệ ngày nay, những thiết bị điện tử như Laptop, Tablet, Smart Phone, Smart TV, gần như hiện diện ở mỗi gia đình, được trang bị cho mỗi cá nhân nhằm phục vụ công việc và nhu cầu cuộc sống, kèm theo đó là sự ra đời của các thiết
bị ngoại vi phụ trợ giúp chúng ta sử dụng tối đa chức năng, kết nối và giúp cho các thiết bị điện tử thông minh hơn, có thể kể đến như Wireless mouse [1], presentation equipment [2], Hơn nữa, để sử dụng nhiều thiết bị ngoại vi cùng lúc chúng ta cần đến USB hub [3] Khi một chiếc máy tính xách tay (laptop) bị hỏng bàn phím (keyboard) hoặc chuột (mouse) hoặc cả hai, giải pháp đầu tiên chúng ta nghĩ đến là thay mới, nhưng khi thay mới chỉ để sử dụng một vài lần thì rất tốn kém, chưa kể đến một số loại rất hiếm linh kiện và cần nhiều thời gian để sửa chữa, thay thế Trong tình huống như vậy, câu hỏi được đặt ra
là không cần thay thế có thể dùng laptop khác để điều khiển chiếc laptop bị hỏng đó được không? Sự việc tưởng chừng đơn giản nhưng đến nay vẫn chưa có phương án đảm bảo thực hiện điều này một cách đơn giản và hiệu quả, chính điều đó đã thôi thúc chúng tôi tìm kiếm giải pháp xử lý trước hết vấn đề trên, ngoài ra tiến hành nghiên cứu, phát triển các ứng dụng có liên quan
Nội dung bài báo sẽ trình bày về quá trình nghiên cứu, thiết kế Touch USB giúp sử dụng nhiều thiết bị ngoại vi cùng một lúc mà không cần sử dụng USB hub Sự tiện dụng được tăng lên khi có thể sử dụng các thiết bị ngoại vi để điều khiển 2 thiết bị mà chúng ta đang làm việc Touch USB ngoài việc có thể tích hợp được các ngoại vi còn có sẵn một số phím cảm ứng và mọi điều khiển đều thực hiện bằng truyền dữ liệu không dây Một điểm đặc biệt là Touch USB được thiết kế giúp cho chúng ta có thể cấu hình thiết bị trực tiếp hoặc từ xa thông qua file cấu hình đơn giản, phổ biến dưới định dạng “*.txt”
Bài báo được bố cục gồm 5 phần Phần II tóm tắt cơ sở lý thuyết, trong khi phần III trình bày về thiết kế Touch USB gồm phần cứng và phần mềm điều khiển, phần IV tóm tắt tính năng, ứng dụng của Touch USB và cuối cùng là kết luận
2 CƠ SỞ LÝ THUYẾT 2.1 Giao tiếp USB
USB là một giao thức nối tiếp tốc độ cao, có thể cung cấp điện cho các thiết bị kết nối với nó [4] Khoảng cách tối đa cho phép truyền dữ liệu từ một thiết bị đến máy chủ của nó
là khoảng ba mươi mét, thực hiện bằng cách sử dụng 5 hub [5] Vi điều khiển STM32F103
Trang 2Kỹ thuật điều khiển & Điện tử
N T Hiếu, H V Hữu, V V Thuận, “Thiết kế thiết bị ngoại vi … cấu hình hệ thống.”
74
hỗ trợ giao tiếp USB với tốc độ Full Speed (12Mbps) có khả năng kết nối với một giao diện USB Host [6] Khối giao diện này bao gồm Layer1 và Layer2 đảm nhận chức năng truyền vật lý và truyền dữ liệu logic Ngoài ra, hỗ trợ đầy đủ chế độ Suspend và Resume nhằm tiết kiệm năng lượng
2.2 Phương thức truyền dữ liệu không dây qua sóng RF
Module nRF24L01 truyền nhận dữ liệu với khả năng kết nối point-to-point (2 node mạng), hoặc network (nhiều node mạng), sử dụng sóng radio 2.4GHz [7] Module này được điều khiển theo giao thức SPI, là chuẩn truyền thông nối tiếp tốc độ cao SPI đôi khi được gọi là chuẩn truyền thông “4 dây” vì có 4 đường giao tiếp trong chuẩn này đó là SCK (Serial Clock), MISO (Master Input Slave Output), MOSI (Master Ouput Slave Input) và
SS (Slave Select)
2.3 Ngoại vi không dây
Các thiết bị ngoại vi (ví dụ: keyboard, mouse, trackball, touch pad, joysticks, và game controllers) thực hiện truyền dữ điều khiển thông qua sóng RF Dữ liệu từ các ngoại vi sẽ được vi điều khiển xử lý và truyền đi thông qua modul nRF24L01 phục vụ điều khiển các thiết bị nhận Giao diện ngoại vi không dây [8] được sử dụng để ghép nối với thiết bị ngoại vi với máy tính chủ hoặc bộ điều khiển
2.4 Cảm ứng điện dung
Cảm ứng điện dung sử dụng các thuộc tính điện từ của thân thể con người để phát hiện tiếp xúc [9] Với cảm ứng điện dung, các thao tác chạm dù là rất nhẹ cũng có thể được ghi nhận giúp cho việc cảm ứng trở nên dễ dàng hơn so với các công nghệ khác Công nghệ này được sử dụng để thiết kế các phím cảm ứng cho Touch USB [10]
3 THIẾT KẾ TOUCH USB 3.1 Sơ đồ khối hệ thống
Với mục tiêu thiết kế bộ giao tiếp chuẩn USB mà qua đó các thiết bị ngoại vi có thể thực hiện/truyền các lệnh điều khiển tới trung tâm/máy tính, sơ đồ khối thiết kế Touch USB được trình bày trong hình 1
- Khối phát (TX): là một máy tính hoặc là Touch Keypad được kết nối với thiết bị phát Nhiệm vụ của khối phát là thực hiện nhận dữ liệu từ máy tính cá nhân hoặc Touch Keypad, đóng gói dữ liệu và truyền sang bên thu Trường hợp sử dụng máy tính thì dữ liệu được nhập từ keyboard, mouse để cung cấp cho vi điều khiển qua kết nối USB thông qua việc ghi các lệnh vào file config trên ổ USB của thiết bị Trường hợp còn lại, dữ liệu được nhập từ các nút cảm ứng được thiết kế sẵn trên sản phẩm, khi đó các nút này sẽ tương ứng với một số phím nhất định trên keyboard (việc định nghĩa các phím này có thể định nghĩa được thông qua file cấu hình), vi điều khiển sẽ đọc giá trị ADC từ các nút cảm ứng và xác định mã phím tương ứng với nút cảm ứng
- Khối thu (RX): có thể là một máy tính cá nhân, hoặc thiết bị di động, hoặc máy tính nhúng được kết nối với thiết bị thu Nhiệm vụ của khối thu là nhận dữ liệu từ khối phát, và gửi cho vi điều khiển thực hiện xử lí Vi điều khiển xử lí dữ liệu nhận được để gửi lên máy tính thông qua giao tiếp USB và giúp máy tính nhận được các ngoại vi được cài đặt trên thiết bị Phía thu hiển thị kết quả của toàn bộ quá trình truyền nhận (các kí tự và hoạt động được gửi hoặc điều khiển từ phía phát)
+ Khối thu/phát vô tuyến (RF): sử dụng modul nRF24L01, thực hiện nhận dữ liệu từ vi điều khiển và truyền dữ liệu từ phía thu thông qua sóng RF
Trang 3Nghiên c
Tạp chí Nghi
3.2
M
điều khiển STM32F103C8T6 đ
sắp xếp theo dạng l
ch
mà v
Nghiên c
ạp chí Nghi
3.2 Thi
Mạch nguyên lí c
Chú thích:
ều khiển STM32F103C8T6 đ
Qua quá trình ki
ắp xếp theo dạng l
chạm/không chạm
mà vẫn đảm bảo việc
Nghiên c
ạp chí Nghi
Thiết kế phần cứng
ch nguyên lí c
Chú thích:
ều khiển STM32F103C8T6 đ
Qua quá trình ki
ắp xếp theo dạng l
ạm/không chạm
ẫn đảm bảo việc
Nghiên cứu khoa học công nghệ
ạp chí Nghi
ết kế phần cứng
ch nguyên lí c
Chú thích:
ều khiển STM32F103C8T6 đ
Qua quá trình ki
ắp xếp theo dạng l
ạm/không chạm
ẫn đảm bảo việc
ứu khoa học công nghệ
ạp chí Nghiên c
ết kế phần cứng
ch nguyên lí c
Chú thích:
ều khiển STM32F103C8T6 đ
Hình 3.
Qua quá trình ki
ắp xếp theo dạng l
ạm/không chạm
ẫn đảm bảo việc
ứu khoa học công nghệ
ên cứu KH&CN
ết kế phần cứng
ch nguyên lí củ
Chú thích: đư
ều khiển STM32F103C8T6 đ
Hình 3.
Qua quá trình ki
ắp xếp theo dạng l
ạm/không chạm
ẫn đảm bảo việc
ứu khoa học công nghệ
ứu KH&CN
Keyboard
ết kế phần cứng
ủa Touch USB:
ường D+ t
ều khiển STM32F103C8T6 đ
Hình 3.
Qua quá trình kiểm thử th
ắp xếp theo dạng l
ạm/không chạm và gi
ẫn đảm bảo việc
ứu khoa học công nghệ
ứu KH&CN
Keyboard
ết kế phần cứng
a Touch USB:
ờng D+ t
ều khiển STM32F103C8T6 đ
Hình 3 Kh
ểm thử th
ắp xếp theo dạng lưới (h
và gi
ẫn đảm bảo việc tránh nhi
ứu khoa học công nghệ
ứu KH&CN
Laptop Keyboard
ết kế phần cứng
a Touch USB:
Hình 2.
ờng D+ t
ều khiển STM32F103C8T6 đ
Khối thu thập dữ liệu RF v
ểm thử th
ới (h
và giảm đ tránh nhi
ứu khoa học công nghệ
ứu KH&CN quân s
Laptop Keyboard
TX
Hình 1.
a Touch USB:
Hình 2.
ờng D+ tương
ều khiển STM32F103C8T6 đ
ối thu thập dữ liệu RF v
ểm thử th
ới (hình 3,4) Thi
ảm đư tránh nhi
ứu khoa học công nghệ
uân s
Laptop Mouse
TX USB
Hình 1.
a Touch USB:
Hình 2.
ương
ều khiển STM32F103C8T6 đư
ối thu thập dữ liệu RF v
ểm thử thì các Sensor (
ình 3,4) Thi ược kíc tránh nhiễu giữa các k
uân sự, Số
Mouse
USB
Hình 1.
a Touch USB:
Hình 2 Kh
ương ứng với USBDP, D ược kết nối với cổng USB nh
ối thu thập dữ liệu RF v
ác Sensor ( ình 3,4) Thi
ợc kíc
ễu giữa các k
ự, Số
Mouse
Hình 1 Sơ đ
Khối điều khiển (MCU) v
ứng với USBDP, D
ợc kết nối với cổng USB nh
ối thu thập dữ liệu RF v
ác Sensor ( ình 3,4) Thi
ợc kích thư
ễu giữa các k
ự, Số 57
Sơ đ
ối điều khiển (MCU) v
ứng với USBDP, D
ợc kết nối với cổng USB nh
ối thu thập dữ liệu RF v
ác Sensor ( ình 3,4) Thiết kế n
h thư
ễu giữa các k
7, 10
RF
Sơ đồ khối hệ thống Touch USB
ối điều khiển (MCU) v
ứng với USBDP, D
ợc kết nối với cổng USB nh
ối thu thập dữ liệu RF v
ác Sensor (c
ết kế n
h thước
ễu giữa các kênh lân c
10 - 20
RF
ồ khối hệ thống Touch USB
ối điều khiển (MCU) v
ứng với USBDP, D
ợc kết nối với cổng USB nh
ối thu thập dữ liệu RF v
các pad đ
ết kế n Board m ênh lân c
2018
Touch Keypad
ồ khối hệ thống Touch USB
ối điều khiển (MCU) v
ứng với USBDP, D
ợc kết nối với cổng USB nh
ối thu thập dữ liệu RF và các nút c
ác pad đ
ết kế này t Board m ênh lân c
8
Máy tính Tablet Smart TV Raspberry Pi
Touch Keypad Battery
ồ khối hệ thống Touch USB
ối điều khiển (MCU) v
ứng với USBDP, D-
ợc kết nối với cổng USB nh
à các nút c
ác pad đồng) đ
ày tận dụng tối đa khả năng Board mạch chính (
ênh lân cận
Máy tính Tablet Smart TV Raspberry Pi
Touch Keypad Battery
ồ khối hệ thống Touch USB
ối điều khiển (MCU) v
tương
ợc kết nối với cổng USB nh
à các nút c
ồng) đ
ận dụng tối đa khả năng ạch chính (
ận
Máy tính Tablet, Smart Phone Smart TV
Raspberry Pi
Battery
ồ khối hệ thống Touch USB
ối điều khiển (MCU) và USB
tương
ợc kết nối với cổng USB nh
à các nút cảm ứng điện dung
ồng) đ
ận dụng tối đa khả năng ạch chính (
Máy tính/Server Smart Phone Smart TV
Raspberry Pi
RX
TX Battery
ồ khối hệ thống Touch USB
à USB
tương ứng với USBDM MCU l
ợc kết nối với cổng USB như h
ảm ứng điện dung
ồng) được thiết kế dạng h
ận dụng tối đa khả năng ạch chính (
Server Smart Phone Raspberry Pi,
RX USB
TX
RF
ồ khối hệ thống Touch USB
à USB
ứng với USBDM MCU l
ư hình
ảm ứng điện dung
ợc thiết kế dạng h
ận dụng tối đa khả năng ạch chính (ti
Server Smart Phone
USB
RF
ồ khối hệ thống Touch USB
ứng với USBDM MCU l ình 2
ảm ứng điện dung
ợc thiết kế dạng h
ận dụng tối đa khả năng
tiết kiệm chi phí sản xuất
Smart Phone
ồ khối hệ thống Touch USB
ứng với USBDM MCU l
ảm ứng điện dung
ợc thiết kế dạng h
ận dụng tối đa khả năng
ết kiệm chi phí sản xuất
ứng với USBDM MCU l
ảm ứng điện dung
ợc thiết kế dạng h
ận dụng tối đa khả năng
ết kiệm chi phí sản xuất
ứng với USBDM MCU l
ảm ứng điện dung
ợc thiết kế dạng h
ận dụng tối đa khả năng
ết kiệm chi phí sản xuất
ứng với USBDM MCU l
ợc thiết kế dạng hình tròn
ận dụng tối đa khả năng phát hi
ết kiệm chi phí sản xuất
ứng với USBDM MCU l
ình tròn phát hi
ết kiệm chi phí sản xuất
ứng với USBDM MCU là vi
ình tròn phát hi
ết kiệm chi phí sản xuất
75
à vi
ình tròn và phát hiện
ết kiệm chi phí sản xuất)
75
à vi
và
ện )
Trang 43.3
một cách linh hoạt (h
thực hiện sửa lệnh MODE trong file config.txt, cụ thể nh
trên thi
config.txt thì thi
76
3.3 Thi
Ph
ột cách linh hoạt (h
ực hiện sửa lệnh MODE trong file config.txt, cụ thể nh
- MODE = TX: ch
- MODE = RX: ch
- MODE = TOUCH: ch
trên thi
Sau khi th
config.txt thì thi
Thiết kế phần mềm
Phần mềm đ
ột cách linh hoạt (h
ực hiện sửa lệnh MODE trong file config.txt, cụ thể nh
MODE = TX: ch
MODE = RX: ch
MODE = TOUCH: ch
trên thiết bị
Sau khi th
config.txt thì thi
N T Hi
ết kế phần mềm
ần mềm đ
ột cách linh hoạt (h
ực hiện sửa lệnh MODE trong file config.txt, cụ thể nh
MODE = TX: ch
MODE = RX: ch
MODE = TOUCH: ch
ết bị
Sau khi th
config.txt thì thi
N T Hi
ết kế phần mềm
ần mềm đ
ột cách linh hoạt (h
ực hiện sửa lệnh MODE trong file config.txt, cụ thể nh
MODE = TX: ch
MODE = RX: ch
MODE = TOUCH: ch
ết bị
Sau khi thực hiện chọn chế độ bằng lệnh MODE v
config.txt thì thi
N T Hi
ết kế phần mềm
ần mềm được thiết kế giúp ng
ột cách linh hoạt (h
ực hiện sửa lệnh MODE trong file config.txt, cụ thể nh
MODE = TX: ch
MODE = RX: ch
MODE = TOUCH: ch
ực hiện chọn chế độ bằng lệnh MODE v
config.txt thì thiết bị sẽ đ
N T Hiếu, H V Hữu,
ết kế phần mềm
ợc thiết kế giúp ng
ột cách linh hoạt (h
ực hiện sửa lệnh MODE trong file config.txt, cụ thể nh
MODE = TX: ch
MODE = RX: ch
MODE = TOUCH: ch
ực hiện chọn chế độ bằng lệnh MODE v
ết bị sẽ đ
ếu, H V Hữu,
Hình 5.
ết kế phần mềm
ợc thiết kế giúp ng
ột cách linh hoạt (hình 5)
ực hiện sửa lệnh MODE trong file config.txt, cụ thể nh
MODE = TX: chế độ nhận dữ liệu
MODE = RX: chế độ truyền v
MODE = TOUCH: ch
ực hiện chọn chế độ bằng lệnh MODE v
ết bị sẽ đ
ếu, H V Hữu,
Hình 4.
Hình 5.
ết kế phần mềm
ợc thiết kế giúp ng ình 5)
ực hiện sửa lệnh MODE trong file config.txt, cụ thể nh
ế độ nhận dữ liệu
ế độ truyền v MODE = TOUCH: ch
ực hiện chọn chế độ bằng lệnh MODE v
ết bị sẽ đư
ếu, H V Hữu,
Hình 4.
Hình 5.
ợc thiết kế giúp ng ình 5)
ực hiện sửa lệnh MODE trong file config.txt, cụ thể nh
ế độ nhận dữ liệu
ế độ truyền v MODE = TOUCH: chế độ truyền với dữ liệu đầu v
ực hiện chọn chế độ bằng lệnh MODE v
ược reset
ếu, H V Hữu, V V Thu
Hình 4.
Hình 5 Lưu đ
ợc thiết kế giúp ng ình 5) Để thực hiện thay đổi chế độ hoạt động của Touch USB ta
ực hiện sửa lệnh MODE trong file config.txt, cụ thể nh
ế độ nhận dữ liệu
ế độ truyền v
ế độ truyền với dữ liệu đầu v
ực hiện chọn chế độ bằng lệnh MODE v
ợc reset
V V Thu
Hình 4 M
Lưu đ
ợc thiết kế giúp ng
ể thực hiện thay đổi chế độ hoạt động của Touch USB ta
ực hiện sửa lệnh MODE trong file config.txt, cụ thể nh
ế độ nhận dữ liệu
ế độ truyền với dữ liệu đầu v
ế độ truyền với dữ liệu đầu v
ực hiện chọn chế độ bằng lệnh MODE v
ợc reset
V V Thu
Một phi
Lưu đồ thuật toán thiết kế phần mềm
ợc thiết kế giúp người d
ể thực hiện thay đổi chế độ hoạt động của Touch USB ta
ực hiện sửa lệnh MODE trong file config.txt, cụ thể nh
ế độ nhận dữ liệu
ới dữ liệu đầu v
ế độ truyền với dữ liệu đầu v
ực hiện chọn chế độ bằng lệnh MODE v
và ti
V V Thuận
ột phi
ồ thuật toán thiết kế phần mềm
ời dùng
ể thực hiện thay đổi chế độ hoạt động của Touch USB ta
ực hiện sửa lệnh MODE trong file config.txt, cụ thể nh
ế độ nhận dữ liệu
ới dữ liệu đầu v
ế độ truyền với dữ liệu đầu v
ực hiện chọn chế độ bằng lệnh MODE v
và tiến h
ận,
ột phiên b
ồ thuật toán thiết kế phần mềm
ùng
ể thực hiện thay đổi chế độ hoạt động của Touch USB ta
ực hiện sửa lệnh MODE trong file config.txt, cụ thể nh
ới dữ liệu đầu v
ế độ truyền với dữ liệu đầu v
ực hiện chọn chế độ bằng lệnh MODE v
ến h
, “Thi
ên bản của sản phẩm
ồ thuật toán thiết kế phần mềm
ùng có th
ể thực hiện thay đổi chế độ hoạt động của Touch USB ta
ực hiện sửa lệnh MODE trong file config.txt, cụ thể nh
ới dữ liệu đầu v
ế độ truyền với dữ liệu đầu v
ực hiện chọn chế độ bằng lệnh MODE v
ến hành c
Thiết kế thiết bị ngoại vi
ản của sản phẩm
ồ thuật toán thiết kế phần mềm
có th
ể thực hiện thay đổi chế độ hoạt động của Touch USB ta
ực hiện sửa lệnh MODE trong file config.txt, cụ thể nh
ới dữ liệu đầu vào đư
ế độ truyền với dữ liệu đầu v
ực hiện chọn chế độ bằng lệnh MODE v
ành c
ết kế thiết bị ngoại vi
ản của sản phẩm
ồ thuật toán thiết kế phần mềm
có thể thay đổi chế độ hoạt động của thiết bị
ể thực hiện thay đổi chế độ hoạt động của Touch USB ta
ực hiện sửa lệnh MODE trong file config.txt, cụ thể nh
ào đư
ế độ truyền với dữ liệu đầu v
ực hiện chọn chế độ bằng lệnh MODE v
ành cấu h
ết kế thiết bị ngoại vi
ản của sản phẩm
ồ thuật toán thiết kế phần mềm
ể thay đổi chế độ hoạt động của thiết bị
ể thực hiện thay đổi chế độ hoạt động của Touch USB ta
ực hiện sửa lệnh MODE trong file config.txt, cụ thể như sau:
ào được lấy từ keyboard, mouse
ế độ truyền với dữ liệu đầu v
ực hiện chọn chế độ bằng lệnh MODE v
ấu hình l
ết kế thiết bị ngoại vi
ản của sản phẩm
ồ thuật toán thiết kế phần mềm
ể thay đổi chế độ hoạt động của thiết bị
ể thực hiện thay đổi chế độ hoạt động của Touch USB ta
ư sau:
ợc lấy từ keyboard, mouse
ế độ truyền với dữ liệu đầu vào đư
ực hiện chọn chế độ bằng lệnh MODE và ấn Save để tiến h
ình l
K
ết kế thiết bị ngoại vi
ản của sản phẩm
ồ thuật toán thiết kế phần mềm
ể thay đổi chế độ hoạt động của thiết bị
ể thực hiện thay đổi chế độ hoạt động của Touch USB ta
ư sau:
ợc lấy từ keyboard, mouse
ào đư
ấn Save để tiến h ình lại để có thể hoạt động với chế
Kỹ thuật điều khiển & Điện tử
ết kế thiết bị ngoại vi
ản của sản phẩm
ồ thuật toán thiết kế phần mềm
ể thay đổi chế độ hoạt động của thiết bị
ể thực hiện thay đổi chế độ hoạt động của Touch USB ta
ợc lấy từ keyboard, mouse
ào được lấy từ các nút cảm ứng
ấn Save để tiến h
ại để có thể hoạt động với chế
ỹ thuật điều khiển & Điện tử
ết kế thiết bị ngoại vi
ồ thuật toán thiết kế phần mềm
ể thay đổi chế độ hoạt động của thiết bị
ể thực hiện thay đổi chế độ hoạt động của Touch USB ta
ợc lấy từ keyboard, mouse
ợc lấy từ các nút cảm ứng
ấn Save để tiến h
ại để có thể hoạt động với chế
ỹ thuật điều khiển & Điện tử
…
ể thay đổi chế độ hoạt động của thiết bị
ể thực hiện thay đổi chế độ hoạt động của Touch USB ta
ợc lấy từ keyboard, mouse
ợc lấy từ các nút cảm ứng
ấn Save để tiến h
ại để có thể hoạt động với chế
ỹ thuật điều khiển & Điện tử
… cấu h
ể thay đổi chế độ hoạt động của thiết bị
ể thực hiện thay đổi chế độ hoạt động của Touch USB ta
ợc lấy từ keyboard, mouse
ợc lấy từ các nút cảm ứng
ấn Save để tiến h
ại để có thể hoạt động với chế
ỹ thuật điều khiển & Điện tử
ấu hình h
ể thay đổi chế độ hoạt động của thiết bị
ể thực hiện thay đổi chế độ hoạt động của Touch USB ta
ợc lấy từ keyboard, mouse
ợc lấy từ các nút cảm ứng
ấn Save để tiến h
ại để có thể hoạt động với chế
ỹ thuật điều khiển & Điện tử
ình h
ể thay đổi chế độ hoạt động của thiết bị
ể thực hiện thay đổi chế độ hoạt động của Touch USB ta
ợc lấy từ keyboard, mouse
ợc lấy từ các nút cảm ứng
ấn Save để tiến hành lưu file
ại để có thể hoạt động với chế
ỹ thuật điều khiển & Điện tử
ình hệ thống
ể thay đổi chế độ hoạt động của thiết bị
ể thực hiện thay đổi chế độ hoạt động của Touch USB ta
ợc lấy từ keyboard, mouse
ợc lấy từ các nút cảm ứng
ành lưu file
ại để có thể hoạt động với chế
ỹ thuật điều khiển & Điện tử
ệ thống
ể thay đổi chế độ hoạt động của thiết bị
ể thực hiện thay đổi chế độ hoạt động của Touch USB ta
ợc lấy từ các nút cảm ứng
ành lưu file
ại để có thể hoạt động với chế
ỹ thuật điều khiển & Điện tử
ệ thống.”
ể thay đổi chế độ hoạt động của thiết bị
ể thực hiện thay đổi chế độ hoạt động của Touch USB ta
ợc lấy từ các nút cảm ứng
ành lưu file
ại để có thể hoạt động với chế
ỹ thuật điều khiển & Điện tử
”
ể thay đổi chế độ hoạt động của thiết bị
ể thực hiện thay đổi chế độ hoạt động của Touch USB ta
ợc lấy từ các nút cảm ứng
ành lưu file
ại để có thể hoạt động với chế
Trang 5Nghiên cứu khoa học công nghệ
Tạp chí Nghiên cứu KH&CN quân sự, Số 57, 10 - 2018 77
độ mới Ngoài ra mọi thông tin cấu hình trong file config.txt sẽ được lưu lại trong bộ nhớ Flash của Touch USB để đảm bảo dữ liệu cấu hình không bị mất đi khi Touch USB không được cấp nguồn
Ở chế độ TOUCH thì hàm touch_mode_process() được gọi Hàm này thực hiện đọc dữ liệu từ các nút cảm ứng sau đó tiến hành đóng gói dữ liệu rồi thực hiện gửi bản tin sang khối thu
Ở chế độ TX thì hàm tx_mode_process() được gọi Hàm này thực hiện nhận dữ liệu từ các ngoại vi như keyboard, mouse trên máy tính sau đó tiến hành đóng gói dữ liệu rồi thực hiện gửi bản tin sang khối thu
Ở chế độ RX thì hàm rx_mode_process() được gọi Hàm này thực hiện nhận gói tin từ
bên nhận gửi sang, giải mã rồi tiến hành gửi dữ liệu lên máy tính
3.4 Phương pháp cấu hình thiết bị qua ổ USB
Khi kết nối với thiết bị thì sẽ xuất hiện một ổ USB Trong ổ này chứa 1 tệp cấu hình (file config) phục vụ cho việc cấu hình các tham số hoạt động của thiết bị File config có định dang là “*.txt” nên ta có thể sử dụng các phần mềm mặc định của Windows như Notepad để mở file config Việc lựa chọn file text để thực hiện cấu hình thiết bị sẽ làm cho sản phẩm trở lên tiện lợi và dễ dàng sừ dụng hơn rất nhiều cho người dùng phổ thông Từ
đó sẽ làm tăng phạm vi sử dụng của sản phẩm Hơn nữa sản phẩm còn sử dụng chính giao tiếp USB để thực truyền dữ liệu từ ổ USB trên máy tính xuống vi điều khiển để phục vụ cho việc cấu hình Từ đó độ tối ưu cũng như tính tiện lợi của sản phẩm được phát huy đến mức tối đa
Khi ấn lưu tệp cấu hình (save file config) thì dữ liệu được gửi từ máy tính xuống bộ nhớ RAM của vi điều khiển (ramdisk)
Trong file ramdisk.c có hàm ramdisk_write xử lý dữ liệu được gửi xuống từ máy tính
Quá trình thực hiện cấu hình lại thiết bị được thực hiện thông qua 3 bước:
+ Cấu hình module RF tương ứng với chế độ hoạt động và tham số được lưu trong file cấu hình
+ Lưu thông tin cấu hình thiết bị vào bộ nhớ Flash của vi điều khiển
+ Khởi tạo lại USB
Cơ chế xử lí dữ liệu trong file config được miêu tả chi tiết bởi sơ đồ thuật toán trong
hình 6
Các lệnh giá trị tham số cấu hình sau khi ấn lưu thì sẽ được lưu vào bộ nhớ Flash của vi điều khiển Do đó khi thiết bị mất điện thì mọi thông tin cấu hình sẽ không bị mất (chú ý là các thông tin này phải được lưu vào bộ nhớ Flash trước khi mất điện), khi cấp điện cho
thiết bị và kiểm tra lại file config.txt thì thấy mọi thứ vẫn giữ nguyên trạng thái trước đó Sau khi dữ liệu trong file config được lưu thì dữ liệu này sẽ được máy tính gửi xuống bộ đệm buffer của vi điều khiển Sau đó dữ liệu này được lấy ra để tiến hành xử lý Dữ liệu từ
máy tính gửi xuống được chia thành các sector
Tuy nhiên trong dữ liệu mà máy tính gửi xuống vi điều khiển chỉ có 1 vài sector khác 0
do đó ta chỉ cần quan tâm đến các sector này Các sector khác 0 này sẽ được copy vào bộ nhớ RAM của vi điều khiển Các sector khác 0 này sẽ chứa dữ liệu của toàn bộ file
config.txt được lưu trong ổ USB của thiết bị Do đó ta chỉ cần sử dụng hàm ramdisk_write
để lấy dữ liệu từ bộ nhớ RAM của vi điều khiển Toàn bộ khối dữ liệu trong file config.txt
sẽ được phân chia thành từng dòng (string) thông qua kí tự ‘\n’ để phục vụ việc xử lý từng lệnh (command)
Trang 6của file H
các l
parameters s
ph
đư
USB, c
ho
lệnh Nếu xuất hiện chuỗi “RF24_Channel” th
của lệnh (trong ví dụ n
RF s
78
Trong file c
ủa file H
các lệnh phía d
Cấu trúc của 1 command có dạng nh
Chương tr
parameters s
phải l
được l
USB, c
hoạt động thiết bị
Ví d
ệnh Nếu xuất hiện chuỗi “RF24_Channel” th
ủa lệnh (trong ví dụ n
RF sẽ sử dụng parameter n
Trong file c
ủa file H
ệnh phía d
ấu trúc của 1 command có dạng nh
Chương tr
parameters s
ải là 1 l
ợc lưu l
USB, cấu h
ạt động thiết bị
Ví dụ đối với lệnh: RF24_Channel = 5
ệnh Nếu xuất hiện chuỗi “RF24_Channel” th
ủa lệnh (trong ví dụ n
ẽ sử dụng parameter n
N T Hi
Trong file c
ủa file Hàm
ệnh phía d
ấu trúc của 1 command có dạng nh
Chương tr
parameters s
à 1 lệnh th
ưu lại v
ấu h
ạt động thiết bị
ụ đối với lệnh: RF24_Channel = 5
ệnh Nếu xuất hiện chuỗi “RF24_Channel” th
ủa lệnh (trong ví dụ n
ẽ sử dụng parameter n
N T Hi
Trong file c
àm
ệnh phía d
ấu trúc của 1 command có dạng nh
Chương trình th
parameters sẽ đ
ệnh th
ại v
ấu hình module RF, và các hàm thu
ạt động thiết bị
ụ đối với lệnh: RF24_Channel = 5
ệnh Nếu xuất hiện chuỗi “RF24_Channel” th
ủa lệnh (trong ví dụ n
ẽ sử dụng parameter n
N T Hi
Trong file cấu h
àm ramdisk_write
ệnh phía dưới d
ấu trúc của 1 command có dạng nh
ình th
ẽ đươc tách ra kh
ệnh thì nó s
ại vào b
ình module RF, và các hàm thu
ạt động thiết bị
ụ đối với lệnh: RF24_Channel = 5
ệnh Nếu xuất hiện chuỗi “RF24_Channel” th
ủa lệnh (trong ví dụ n
ẽ sử dụng parameter n
N T Hiếu, H V Hữu,
ấu hình s
ramdisk_write
ới dòng header dù có
ấu trúc của 1 command có dạng nh
ình thực hiện kiểm tra từng Command string Nếu nó đúng l
ươc tách ra kh
ì nó s
ào bộ nhớ Flash sẽ đ ình module RF, và các hàm thu
ạt động thiết bị
ụ đối với lệnh: RF24_Channel = 5
ệnh Nếu xuất hiện chuỗi “RF24_Channel” th
ủa lệnh (trong ví dụ n
ẽ sử dụng parameter n
ếu, H V Hữu,
Hình 6.
ình s
ramdisk_write
òng header dù có
ấu trúc của 1 command có dạng nh
ực hiện kiểm tra từng Command string Nếu nó đúng l ươc tách ra kh
ì nó sẽ bỏ qua v
ộ nhớ Flash sẽ đ ình module RF, và các hàm thu
ụ đối với lệnh: RF24_Channel = 5
ệnh Nếu xuất hiện chuỗi “RF24_Channel” th
ủa lệnh (trong ví dụ này là 50) Sau đó giá tr
ẽ sử dụng parameter n
ếu, H V Hữu,
Hình 6.
ình sẽ có d
ramdisk_write
òng header dù có
ấu trúc của 1 command có dạng nh
[Comman
ực hiện kiểm tra từng Command string Nếu nó đúng l ươc tách ra kh
ẽ bỏ qua v
ộ nhớ Flash sẽ đ ình module RF, và các hàm thu
ụ đối với lệnh: RF24_Channel = 5
ệnh Nếu xuất hiện chuỗi “RF24_Channel” th
ày là 50) Sau đó giá tr
ẽ sử dụng parameter n
ếu, H V Hữu,
Hình 6 Thu
ẽ có d
ramdisk_write
òng header dù có
ấu trúc của 1 command có dạng nh
[Comman
ực hiện kiểm tra từng Command string Nếu nó đúng l ươc tách ra kh
ẽ bỏ qua v
ộ nhớ Flash sẽ đ ình module RF, và các hàm thu
ụ đối với lệnh: RF24_Channel = 5
ệnh Nếu xuất hiện chuỗi “RF24_Channel” th
ày là 50) Sau đó giá tr
ẽ sử dụng parameter này
ếu, H V Hữu, V V Thu
Thu
ẽ có dòng t
sẽ thực hiện kiểm tra header n òng header dù có
ấu trúc của 1 command có dạng nh
[Comman
ực hiện kiểm tra từng Command string Nếu nó đúng l ươc tách ra khỏi command, sau đó sẽ đ
ẽ bỏ qua và ti
ộ nhớ Flash sẽ đ ình module RF, và các hàm thu
ụ đối với lệnh: RF24_Channel = 5
ệnh Nếu xuất hiện chuỗi “RF24_Channel” th
ày là 50) Sau đó giá tr
ày để phục vụ cho việc cấu h
V V Thu
Thuật toán xử lí dữ liệu trong file config
òng t
ẽ thực hiện kiểm tra header n òng header dù có
ấu trúc của 1 command có dạng nh
[Command string][=][Parameters]
ực hiện kiểm tra từng Command string Nếu nó đúng l
ỏi command, sau đó sẽ đ
à tiến h
ộ nhớ Flash sẽ đ ình module RF, và các hàm thu
ụ đối với lệnh: RF24_Channel = 5
ệnh Nếu xuất hiện chuỗi “RF24_Channel” th
ày là 50) Sau đó giá tr
ể phục vụ cho việc cấu h
V V Thu
ật toán xử lí dữ liệu trong file config
òng tiêu đ
ẽ thực hiện kiểm tra header n òng header dù có đúng c
ấu trúc của 1 command có dạng nh
d string][=][Parameters]
ực hiện kiểm tra từng Command string Nếu nó đúng l
ỏi command, sau đó sẽ đ
ến h
ộ nhớ Flash sẽ đư ình module RF, và các hàm thu
ụ đối với lệnh: RF24_Channel = 5
ệnh Nếu xuất hiện chuỗi “RF24_Channel” th
ày là 50) Sau đó giá tr
ể phục vụ cho việc cấu h
V V Thuận
ật toán xử lí dữ liệu trong file config
iêu đ
ẽ thực hiện kiểm tra header n đúng c
ấu trúc của 1 command có dạng như sau:
d string][=][Parameters]
ực hiện kiểm tra từng Command string Nếu nó đúng l
ỏi command, sau đó sẽ đ
ến hành x ược khối Process parameter chứa các h ình module RF, và các hàm thu
ụ đối với lệnh: RF24_Channel = 5
ệnh Nếu xuất hiện chuỗi “RF24_Channel” th
ày là 50) Sau đó giá tr
ể phục vụ cho việc cấu h
ận,
ật toán xử lí dữ liệu trong file config
iêu đề (header) l
ẽ thực hiện kiểm tra header n đúng cũng sẽ không đ
ư sau:
d string][=][Parameters]
ực hiện kiểm tra từng Command string Nếu nó đúng l
ỏi command, sau đó sẽ đ
ành x
ợc khối Process parameter chứa các h ình module RF, và các hàm thuật toán phát hiện chạm sử dụng để cấu h
ụ đối với lệnh: RF24_Channel = 50 Chương tr
ệnh Nếu xuất hiện chuỗi “RF24_Channel” th
ày là 50) Sau đó giá tr
ể phục vụ cho việc cấu h
, “Thi
ật toán xử lí dữ liệu trong file config
ề (header) l
ẽ thực hiện kiểm tra header n
ũng sẽ không đ
ư sau:
d string][=][Parameters]
ực hiện kiểm tra từng Command string Nếu nó đúng l
ỏi command, sau đó sẽ đ
ành xử lí đến d
ợc khối Process parameter chứa các h
ật toán phát hiện chạm sử dụng để cấu h
0 Chương tr ệnh Nếu xuất hiện chuỗi “RF24_Channel” thì ch
ày là 50) Sau đó giá trị n
ể phục vụ cho việc cấu h
Thiết kế thiết bị ngoại vi
ật toán xử lí dữ liệu trong file config
ề (header) l
ẽ thực hiện kiểm tra header n
ũng sẽ không đ
d string][=][Parameters]
ực hiện kiểm tra từng Command string Nếu nó đúng l
ỏi command, sau đó sẽ đ
ử lí đến d
ợc khối Process parameter chứa các h
ật toán phát hiện chạm sử dụng để cấu h
0 Chương tr
ì chương tr
ị này s
ể phục vụ cho việc cấu h
ết kế thiết bị ngoại vi
ật toán xử lí dữ liệu trong file config
ề (header) là
ẽ thực hiện kiểm tra header n
ũng sẽ không đ
d string][=][Parameters]
ực hiện kiểm tra từng Command string Nếu nó đúng l
ỏi command, sau đó sẽ đ
ử lí đến d
ợc khối Process parameter chứa các h
ật toán phát hiện chạm sử dụng để cấu h
0 Chương tr
ương tr
ày sẽ đ
ể phục vụ cho việc cấu h
ết kế thiết bị ngoại vi
ật toán xử lí dữ liệu trong file config
à [thMakey Config]
ẽ thực hiện kiểm tra header n
ũng sẽ không đ
d string][=][Parameters]
ực hiện kiểm tra từng Command string Nếu nó đúng l
ỏi command, sau đó sẽ được xử lí v
ử lí đến dòng ti
ợc khối Process parameter chứa các h
ật toán phát hiện chạm sử dụng để cấu h
0 Chương trình s
ương tr
ẽ đươc lưu l
ể phục vụ cho việc cấu hình
ết kế thiết bị ngoại vi
ật toán xử lí dữ liệu trong file config
[thMakey Config]
ẽ thực hiện kiểm tra header n
ũng sẽ không đư
d string][=][Parameters]
ực hiện kiểm tra từng Command string Nếu nó đúng l
ợc xử lí v òng ti
ợc khối Process parameter chứa các h
ật toán phát hiện chạm sử dụng để cấu h
ình sẽ thực hiện kiểm tra từng d ương trình s
ươc lưu l ình
K
ết kế thiết bị ngoại vi
ật toán xử lí dữ liệu trong file config
[thMakey Config]
ẽ thực hiện kiểm tra header này, n
ược xử lý
ực hiện kiểm tra từng Command string Nếu nó đúng l
ợc xử lí v òng tiếp theo Các parameter sau khi
ợc khối Process parameter chứa các h
ật toán phát hiện chạm sử dụng để cấu h
ẽ thực hiện kiểm tra từng d ình sẽ thực hiện lấy ra parameter ươc lưu l
Kỹ thuật điều khiển & Điện tử
ết kế thiết bị ngoại vi
ật toán xử lí dữ liệu trong file config
[thMakey Config]
ày, nếu không đúng header th
ợc xử lý
ực hiện kiểm tra từng Command string Nếu nó đúng l
ợc xử lí và lưu l
ếp theo Các parameter sau khi
ợc khối Process parameter chứa các h
ật toán phát hiện chạm sử dụng để cấu h
ẽ thực hiện kiểm tra từng d
ẽ thực hiện lấy ra parameter ươc lưu lại v
ỹ thuật điều khiển & Điện tử
ết kế thiết bị ngoại vi
ật toán xử lí dữ liệu trong file config
[thMakey Config]
ếu không đúng header th
ợc xử lý
ực hiện kiểm tra từng Command string Nếu nó đúng l
à lưu l
ếp theo Các parameter sau khi
ợc khối Process parameter chứa các h
ật toán phát hiện chạm sử dụng để cấu h
ẽ thực hiện kiểm tra từng d
ẽ thực hiện lấy ra parameter
ại và hàm c
ỹ thuật điều khiển & Điện tử
…
ật toán xử lí dữ liệu trong file config
[thMakey Config]
ếu không đúng header th
ợc xử lý
ực hiện kiểm tra từng Command string Nếu nó đúng l
à lưu lại nếu string không
ếp theo Các parameter sau khi
ợc khối Process parameter chứa các h
ật toán phát hiện chạm sử dụng để cấu h
ẽ thực hiện kiểm tra từng d
ẽ thực hiện lấy ra parameter
à hàm c
ỹ thuật điều khiển & Điện tử
… cấu h
[thMakey Config] ở d
ếu không đúng header th
ực hiện kiểm tra từng Command string Nếu nó đúng l
ại nếu string không
ếp theo Các parameter sau khi
ợc khối Process parameter chứa các h
ật toán phát hiện chạm sử dụng để cấu h
ẽ thực hiện kiểm tra từng d
ẽ thực hiện lấy ra parameter
à hàm c
ỹ thuật điều khiển & Điện tử
ấu hình h
ở dòng
ếu không đúng header th
ực hiện kiểm tra từng Command string Nếu nó đúng l
ại nếu string không
ếp theo Các parameter sau khi
ợc khối Process parameter chứa các h
ật toán phát hiện chạm sử dụng để cấu h
ẽ thực hiện kiểm tra từng d
ẽ thực hiện lấy ra parameter
à hàm cấu h
ỹ thuật điều khiển & Điện tử
ình h
òng
ếu không đúng header th
ực hiện kiểm tra từng Command string Nếu nó đúng là 1 l
ại nếu string không
ếp theo Các parameter sau khi
ợc khối Process parameter chứa các hàm kh
ật toán phát hiện chạm sử dụng để cấu h
ẽ thực hiện kiểm tra từng d
ẽ thực hiện lấy ra parameter
ấu hình module
ỹ thuật điều khiển & Điện tử
ình hệ thống
òng đầu ti
ếu không đúng header th
à 1 lệnh th
ại nếu string không
ếp theo Các parameter sau khi
àm kh
ật toán phát hiện chạm sử dụng để cấu h
ẽ thực hiện kiểm tra từng d
ẽ thực hiện lấy ra parameter
ình module
ỹ thuật điều khiển & Điện tử
ệ thống
ầu ti
ếu không đúng header th
ệnh th
ại nếu string không
ếp theo Các parameter sau khi
àm khởi tạo
ật toán phát hiện chạm sử dụng để cấu hình l
ẽ thực hiện kiểm tra từng dòng
ẽ thực hiện lấy ra parameter
ình module
ỹ thuật điều khiển & Điện tử
ệ thống.”
ầu tiên
ếu không đúng header thì
ệnh thì
ại nếu string không
ếp theo Các parameter sau khi
ởi tạo ình lại
òng
ẽ thực hiện lấy ra parameter
ình module
ỹ thuật điều khiển & Điện tử
”
ên
ì
ì
ại nếu string không
ếp theo Các parameter sau khi
ởi tạo
ại
òng
ẽ thực hiện lấy ra parameter
ình module
Trang 7Nghiên cứu khoa học công nghệ
Tạp chí Nghiên cứu KH&CN quân sự, Số 57, 10 - 2018 79
4 THỬ NGHIỆM, ĐÁNH GIÁ VÀ ĐỀ XUẤT ỨNG DỤNG CỦA TOUCH USB 4.1 Thử nghiệm, đánh giá các ngoại vi được tích hợp trên thiết bị
Thiết bị Touch USB được thiết kế ở trên đã bao gồm một số chuẩn kết nối keyboard, mouse, cổng COM, USB Mass storage và được cấu hình trong chip STM32 nhỏ gọn thông dụng Ngay khi thiết bị được kết nối với máy tính thông qua cổng USB thì máy tính có thể nhận diện được các thiết bị ngoại vi, từ đó thiết bị Touch USB vừa thực hiện được tính năng như các ngoại vi, vừa có thể làm cầu nối chuyển thông tin điều khiển từ các ngoại vi tới máy tính/trung tâm điều khiển Khi đấu nối Touch USB vào máy tính thì máy tính sẽ nhận Touch USB tương ứng với 04 ngoại vi như hình 7
Hình 7 Kiểm tra máy tính nhận Touch USB trong Device Manager
Chức năng Keyboard
Ngay khi được kết nối, máy tính nhận Touch USB như một keyboard mới Sau khi đã nhận được keyboard, ta có thể chạm vào các nút cảm ứng (thiết kế sẵn trong Touch USB)
để gửi thông tin của mỗi phím (nút cảm ứng) lên máy tính
Chức năng Mouse
Ngay khi được kết nối, máy tính nhận Touch USB như một thiết bị mouse máy tính mới, từ đây có thể sử dụng các nút cảm ứng để điều khiển mouse của máy tính với các thao tác đơn giản như lên, xuống, sang trái, sang phải, cuộn lên, cuộn xuống
Chức năng COM Port
Ngay khi được kết nối, máy tính nhận Touch USB như một thiết bị kết nối qua cổng COM, từ thiết bị thì ta có thể thực hiện gửi dữ liệu từ vi điều khiển lên máy tính qua cổng COM một cách dễ dàng Việc giúp cho máy tính nhận được cổng COM từ thiết bị có vai trò rất quan trọng trong quá trình lập trình và các ứng dụng liên quan đến cấu hình thiết bị
Ta có thể dễ dàng dùng hàm in (printf) để thực hiện gỡ lỗi (debug) qua đó giúp cho quá trình phát hiện lỗi được dễ dàng hơn
Chức năng USB Mass Storage
Khi kết nối thiết bị với máy tính, kiểm tra trong Device Manager thì sẽ thấy hệ điều
hành nhận thiết bị như một ổ USB bình thường (tên là PTITTeam stm32 USB Device) Với
ổ USB mới này, ta có thể thực hiện được đầy đủ các thao tác như với mọi ổ USB thông dụng như: copy, paste, cut, đọc, ghi file Dung lượng của ổ USB là dung lượng của một ổ đĩa ảo đã được tạo từ trước trên máy tính Dung lượng tối đa của ổ USB này là 30MB do USB được định dạng theo chuẩn FAT Để máy tính nhận thiết bị như một ổ usb bình thường thì ta cần phải tạo một ổ ảo có dung lượng và định dạng phù hợp Sau khi lưu file
(dạng vhd), lọc ra những vùng nhớ có giá trị khác 0 rồi đưa vào trong mã chương trình
(code) Lúc này mã chương trình sẽ thực hiện đọc các mảng giá trị khác 0 này và ghi ngược lại bộ đệm của vi điều khiển Từ đó máy tính có thể nhận thêm Touch USB như một ổ USB mới
Trang 8Kỹ thuật điều khiển & Điện tử
N T Hiếu, H V Hữu, V V Thuận, “Thiết kế thiết bị ngoại vi … cấu hình hệ thống.”
80
Nhóm tác giả đã tiến hành khảo sát, thử nghiệm 04 tính năng trên của Touch USB nhiều lần trên máy tính của các hãng Dell, HP, Lenovo, Sony, Asus, Acer và đạt kết quả thành công lên tới 100%; thực hiện kết nối và cấu hình từ xa thông qua Touch USB thành công với các máy tính trên và máy tính nhúng Raspberry Pi 3
4.2 Một số ứng dụng
Thiết bị ngoại vi không dây chuẩn USB (Touch USB) cho phép ta giải quyết bài toán đặt ra ở mục 1: có thể sử dụng mouse, keyboard của một chiếc laptop này để điều khiển, cấu hình một chiếc máy tính khác Ví dụ, máy tính nhúng Raspberry không có sẵn keyboard và mouse thì ta có thể kết nối thiết bị với sản phẩm rồi ngồi từ xa điều khiển nó một cách rất dễ dàng và tiện lợi Sản phẩm được tích hợp nhiều ngoại vi do đó có tính cơ động và đa dụng cao Khi cấu hình các phím cảm ứng của Touch USB thành một số phím nhất định tương ứng với các phím trên keyboard kèm theo nguồn điện sạc dự phòng có sẵn
từ đó có thể ứng dụng làm các bộ điều khiển
5 KẾT LUẬN
Bài báo đã trình bày tóm tắt kết quả nghiên cứu, thiết kế phần cứng và phần mềm thiết
bị ngoại vi không dây chuẩn USB sử dụng vi điều khiển thông dụng STM32F103 Touch USB là một sản phẩm mẫu hoàn chỉnh có thể được cấu hình để hoạt động theo nhiều chế
độ TOUCH – TX – RX Về cơ bản, Touch USB đã hoạt động theo chuẩn giao tiếp USB, tích hợp được nhiều ngoại vi và có thể trao đổi thông tin qua đường truyền không dây Trong tương lai, có thể tích hợp thêm bộ nhớ FLASH để tăng khả năng lưu trữ, thiết kế tăng số lượng phím cảm ứng và tăng tốc độ truyền dữ liệu
Lời cảm ơn: Chúng tôi xin chân thành cảm ơn phòng nghiên cứu điện tử PTIT Team,
Khoa Kỹ thuật điện tử 1, Học viện Công nghệ Bưu chính Viễn thông đã hỗ trợ nhóm thực hiện nội dung nghiên cứu này
TÀI LIỆU THAM KHẢO
[1] Philippe Junod, Berni Joss, Nicolas Sasselli, Rene Sommer, Aldo Bussien, Wireless
mouse, US5854621A, 1991
[2] Alexander L Tsakiris, David L Lawson, Remote controlled electronic presentation
system, US5204768A, 1991
[3] Toshiyuki Nagase, USB hub, USB-compliant apparatus, and communication system,
US20060179144A1, 2005
[4] Shih-Chou Juan, Application method for universal serial bus file transfer cable,
US20040230708A1, 2003
[5] Kenichi Ueda, Data transfer control method and controller for universal serial bus
interface, US6816929B2, 2000
[6] STMicroelectronics: DocID13587 Rev 17 19/117, 2015
[7] Nordic Semiconductor ASA, nRF2401 Single Chip 2.4 GHz Radio Transceiver, 2004 [8] Sergio Lazzarotto, Jean-Daniel Zanone, Gerhard A Schneider, Wireless peripheral
interface with universal serial bus port, US6782245B1, 1999
[9] Bernard Kasser, Bernhard Joss, Stephen J Bisset, Touch sensing method and
apparatus, US5790107A, 1995
[10] Liu Hua, Jiang XiaoPing, Capacitance sensing matrix for keyboard architecture,
US8059015B2, 2006
Trang 9Nghiên cứu khoa học công nghệ
Tạp chí Nghiên cứu KH&CN quân sự, Số 57, 10 - 2018 81
ABSTRACT
RESEARCH AND DESIGN OF USB WIRELESS PERIPHERALS
SUPPORTING SYSTEM CONFIGURATION
In this paper, the results of research and design of a USB (Universal Serial Bus) standard peripheral device called "Touch USB", through this device many different peripherals can connect to the machine via USB port art presented The hardware devices, driver software, and written peripheral control programs for some different devices connected to a computer via a USB interface have been designed The device also has some touch keys that can be used conveniently, replacing some of the physical keys of the keyboard At the same time, the addition
of the nRF24L01 module enables wireless data transmission from peripheral devices to the computer In this article, the Touch USB design will be presented and its applications in practice will be proposed
Keyword: USB; STM32F103; nRF24L01; Microcontroller; Touchpad; Capacitive sensor
Nhận bài ngày 22 tháng 6 năm 2018 Hoàn thiện ngày 01 tháng 8 năm 2018 Chấp nhận đăng ngày 12 tháng 10 năm 2018
Địa chỉ: Khoa Kĩ thuật điện tử 1, Học viện Công nghệ Bưu chính Viễn thông, 122 Hoàng
Quốc Việt, Cầu Giấy, Hà Nội
*
Email: hieunt@ptit.edu.vn