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