Thiết kế máy in hóa đơn sử dụng giao thức USARTThiết kế máy in hóa đơn sử dụng giao thức USARTThiết kế máy in hóa đơn sử dụng giao thức USARTThiết kế máy in hóa đơn sử dụng giao thức USARTThiết kế máy in hóa đơn sử dụng giao thức USARTThiết kế máy in hóa đơn sử dụng giao thức USARTThiết kế máy in hóa đơn sử dụng giao thức USARTThiết kế máy in hóa đơn sử dụng giao thức USARTThiết kế máy in hóa đơn sử dụng giao thức USART
Trang 1QUÁCH VĂN PHI
THIẾT KẾ MÁY IN HÓA ĐƠN
Trang 2Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Người hướng dẫn khoa học: TS NGUYỄN NGỌC MINH
Phản biện 1: PGS.TS LÊ NHẬT THĂNG
Phản biện 2: PGS.TS BẠCH NHẬT HỒNG
Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc
sĩ tại Học viện Công nghệ Bưu chính Viễn thông
Vào lúc: giờ ngày 20 tháng 8 năm 2016
Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông
Trang 3LỜI MỞ ĐẦU
Hiện nay các hình thức thanh toán ngày càng phong phú, các thiết bị tính tiền cũng rất đa dạng và phổ biến trong mọi lĩnh vực, ngành nghề kinh doanh Kéo theo
đó là nhu cầu xuất hóa đơn thanh toán cho khách hàng cần phải nhanh chóng và tiện lợi hơn nhằm tiết kiệm thời gian cho người kinh doanh và khách hàng
Trước đây với các hoạt động kinh doanh như bán hàng trong siêu thị, thanh toán tiền cho khách hàng đi taxi,… hóa đơn thường do người bán hàng hay lái xe ghi
ra giấy rất nên rất mất thời gian cho cả hai bên Công việc
đó hoàn toàn có thể thực hiện tự động bằng cách truyền nội dung thanh toán từ thiết bị tính tiền sang máy in để in
ra hóa đơn cho khách hàng Hiện nay các loại máy in hóa đơn trên thị trường đã đáp ứng được một phần nhu cầu của người dùng, tuy nhiên giá thành của máy in hóa đơn khá đắt, nguồn gốc xuất xứ và chất lượng thì chưa thực sự đảm bảo
Trong những năm gần đây ngành điện tử ở nước ta đang phát triển rất nhanh Việc tiếp cận với những kiến thức, công nghệ hiện đại rất dễ dàng cho mọi người học
Trang 4tập và nghiên cứu Trong lĩnh vực điện tử có nhiều giao thức được phát triển và ứng dụng trong truyền nhận dữ liệu giữa các module, giữa IC và vi điều khiển, giữa thiết
bị điện tử và máy tính,… như USART, SPI, I2C,… Trong
đó USART được ứng dụng nhiều trong giao tiếp giữa các thiết bị điện tử với nhau, giao tiếp giữa thiết bị điện tử với máy tính, với những ưu điểm như thiết lập kết nối đơn giản, sử dụng ít đường kết nối vật lý
Từ các vấn đề trên em lựa chọn đề tài nghiên cứu
“Thiết kế máy in hóa đơn sử dụng giao thức USART” nhằm thiết kế một máy in hóa đơn sử dụng giao tiếp USART với những tính năng cơ bản và chất lượng tốt
Trong luận văn này sẽ nghiên cứu và thiết kế máy
in hóa đơn sử dụng giao tiếp USART với 4 chương như sau:
Chương 1: Giới thiệu chung
Chương 2: Thiết kế và thực thi phần cứng
Chương 3: Thiết kế và thực thi phần mềm
Chương 4: Kết quả và thảo luận
Trang 5CHƯƠNG 1: GIỚI THIỆU CHUNG
1.1 Máy in hóa đơn
Máy in hoá đơn là thiết bị có chức năng in hoá đơn
ra giấy, để in ra danh sách hàng hóa, giá cả, nội dung cần thanh toán Máy in hóa đơn đã trở thành một thiết bị không thể thiếu trong các đại lý, nhà phân phối, các siêu thị, kho hàng, các cửa hàng bán lẻ
Dựa vào công nghệ in, máy in hóa đơn được chia làm hai loại là máy in kim và máy in nhiệt
Máy in kim sử dụng ma trận kim in khắc chữ viết, hình ảnh lên giấy thông qua một băng mực Ưu điểm của máy in kim là hóa đơn in ra sẽ đảm bảo chất lượng, khó bị
hư hỏng và không bị bay mực Nhược điểm của công nghệ này là tốc độ in chậm và phải thay băng mực cho máy in khi sử dụng hết
Máy in nhiệt sử dụng đầu in nhiệt tác dụng lên giấy
in nhiệt, khi đầu in nhiệt của máy in nhiệt nóng lên sẽ làm nóng lớp hóa chất trên giấy in nhiệt và hiển thị những chữ viết, hình ảnh Máy in nhiệt không dùng mực in bởi trong giấy in nhiệt đã có thành phần hợp chất để khi đầu in tác động nhiệt sẽ in ra chữ Ưu điểm của máy in nhiệt là tốc
Trang 6độ in nhanh, chính xác, không cần thay băng mực cho máy in Nhược điểm của máy in nhiệt là hóa đơn in ra dễ
bị xước, bị hỏng vì lớp hóa chất trên giấy rất dễ bắt nhiệt
Trong lĩnh vực điện tử hiện nay có nhiều chuẩn giao tiếp được phát triển và ứng dụng trong truyền nhận
dữ liệu giữa các module, giữa IC và vi điều khiển, giữa thiết bị điện tử và máy tính,… Trong đó USART được ứng dụng nhiều trong giao tiếp giữa các thiết bị điện tử với nhau, giao tiếp giữa thiết bị điện tử với máy tính, với những ưu điểm như thiết lập kết nối đơn giản, sử dụng ít đường kết nối vật lý, tốc độ truyền dữ liệu ở mức trung bình Chuẩn giao tiếp SPI được ứng dụng nhiều trong giao tiếp giữa các vi điều khiển, giữa vi điều khiển với IC hoặc với các module, chuẩn giao tiếp SPI có tốc độ khá cao
Với những ưu điểm của loại máy in hóa đơn nhiệt
và chuẩn giao tiếp USART, trong đề tài này tác giả lựa chọn thiết kế một máy in hóa đơn nhiệt với các tính năng
Trang 7trình in
- In ảnh lô gô của đơn vị kinh doanh trên hóa đơn
- Nạp ảnh lô gô vào IC nhớ thông qua phần mềm trên máy tính
- Thông báo trạng thái hoạt động của máy in thông qua đèn LED
- Đẩy giấy và in lại hóa đơn đã in trước đó thông qua nút bấm
- Lưu trữ các tham số cấu hình hoạt động của máy
in vào bộ nhớ, có thể cấu hình các tham số hoạt động từ phần mềm trên máy tính
1.2 Giao tiếp truyền nhận nối tiếp USART
1.2.1 Giới thiệu về giao tiếp truyền nhận nối tiếp USART
Thuật ngữ USART trong tiếng anh là viết tắt của cụm từ: Universal Synchronous/Asynchronous Reveiver/Transmitter, nghĩa là truyền nhận đồng bộ và bất đồng bộ USART là một giao diện truyền thông nối tiếp được tích hợp trong máy tính và nhiều dòng vi điều khiển
hỗ trợ giao tiếp nối tiếp đồng bộ và bất đồng bộ
Khái niệm đồng bộ để chỉ sự báo trước trong quá
Trang 8trình truyền Hai thiết bị kết nối với nhau bởi 2 đường, một đường dữ liệu và 1 đường xung nhịp Đường xung nhịp được kiểm soát bởi một thiết bị, tất cả các bit được truyền đồng bộ với xung nhịp đó
Khác với cách truyền đồng bộ, truyền thông bất đồng bộ chỉ cần một đường truyền cho một quá trình (gửi
dữ liệu hoặc nhận dữ liệu) Các tham số truyền nhận, khung dữ liệu đã được chuẩn hóa bởi các thiết bị nên không cần đường xung nhịp báo trước dữ liệu đến
Từ những ưu điểm truyền nhận đơn giản, sử dụng ít đường kết nối của truyền thông bất đồng bộ, trong luận văn này tác giả lựa chọn và ứng dụng chế độ truyền thông bất đồng bộ để truyền nhận dữ liệu giữa máy in hóa đơn
và các thiết bị tính tiền
1.2.2 Giao tiếp USART chế độ bất đồng bộ
Trong chế độ truyền nhận nối tiếp bất đồng bộ này chỉ sử dụng một dây kết nối cho mỗi chiều truyền dữ liệu
do đó để quá trình truyền nhận dữ liệu thành công thì việc tuân thủ các tiêu chuẩn truyền là hết sức quan trọng Sau đây là các khái niệm quan trọng trong chế độ truyền thông này
Trang 9Baud rate (tốc độ Baud): Là số bit truyền trong 1 giây
Frame (khung truyền): Bao gồm các quy định về số bit trong mỗi lần truyền, các bit báo hiệu như bit Start và bit Stop, các bit kiểm tra như Parity, ngoài ra số lượng các bit trong một data cũng được quy định bởi khung truyền
Start bit: Là bit đầu tiên được truyền trong một
1.3 Giao tiếp truyền nhận nối tiếp SPI
1.3.1 Giới thiệu về giao tiếp SPI
SPI (Serial Peripheral Interface – Giao diện ngoại
vi nối tiếp) là một chuẩn đồng bộ nối tiếp để truyền dữ liệu ở chế độ song công toàn phần (full-duplex), do công
ty Motorola thiết kế nhắm đảm bảo sự liên hợp giữa các vi điều khiền và thiết bị ngoại vi một cách đơn giản SPI là
Trang 10giao diện đồng bộ, trong đó bất cứ quá trình truyền nào cũng được đồng bộ hóa với tín hiệu xung nhịp chung
1.3.2 Chuẩn truyền thông SPI
1.3.2.1 Cấu trúc SPI
Giao diện SPI được thực hiện thông qua Bus 4 dây MISO, MOSI, SCK và SS nên đôi khi SPI còn được gọi là giao diện 4 dây
MISO – Master Input/ Slave Output
MOSI – Master Output/ Slave Input
SCK – Serial Clock
SS – Slave Select
1.3.2.2 Truyền thông SPI
Mô tả cơ chế
Giản đồ định thời giao tiếp SPI
1.3.2.3 SPI là giao tiếp đồng bộ
Module SPI cho phép giao tiếp nối tiếp đồng bộ giữa vi xử lý với thiết bị ngoại vi
1.3.2.4 SPI là giao tiếp trao đổi dữ liệu
Dữ liệu lúc nào cũng được truyền qua lại giữa các thiết bị SPI Không có khái niệm thiết bị phát hay thiết bị nhận trong giao tiếp SPI mà mỗi thiết bị có 2 đường dữ
Trang 11liệu, một đường dữ liệu vào và một đường dữ liệu ra Dữ liệu truyền đi được điều khiển bởi xung SCK từ Master
SPI có 4 mode hoạt động, phụ thuộc vào cực tính
và pha của xung đồng hồ
SPI chế độ 0
SPI chế độ 1
SPI chế độ 2
SPI chế độ 3
1.3.3 Các kiểu kết nối SPI
1.3.3.1 Kết nối điểm - điểm
Đây là kiểu kết nối cơ bản nhất của giao tiếp SPI, một master kết nối với một slave
1.3.3.2 Kết nối nhiều Slave
Kết nối song song
Kết nối nối tiếp
1.3.3.3 Kết nối nhiều Master
Kết nối nhiều master song song đến một slave Kết nối hai master với nhau
1.4 Kết luận chương
Qua chương 1, ta đã tìm hiểu về máy in hóa đơn và hai loại giao tiếp USART, SPI Ta đã có những thông tin
Trang 12tổng quát về máy in hóa đơn, phân loại máy in và ưu nhược điểm của mỗi loại, các khái niệm, đặc điểm, tính năng của hai loại giao tiếp USART và SPI
Chương tiếp theo sẽ trình bay về thiết kế phần cứng cho máy in hóa đơn
Trang 13CHƯƠNG 2: THIẾT KẾ VÀ THỰC THI
PHẦN CỨNG
Sơ đồ khối phần cứng máy in bao gồm các khối sau:
Hình 2.1: Sơ đồ khối phần cứng Phần cứng máy in hóa đơn bao gồm đầu in, vi điều khiển, bộ nhớ, khối nguồn Chức năng mỗi khối:
- Khối nguồn: Có chức năng cung cấp nguồn cho thiết bị
- Vi điều khiển: Là bộ xử lý trung tâm điều khiển mọi hoạt động của máy in, điều khiển đầu in thực hiện in hóa đơn, giao tiếp với bộ nhớ để lưu dữ liệu, giao tiếp với thiết bị tính tiền để nhận dữ liệu hóa đơn cần in
Trang 14- Bộ nhớ: Là một IC nhớ có chức năng lưu dữ liệu
- Đầu in: Có chức năng thực hiện việc in hóa đơn dưới sự điều khiển của vi điều khiển
- Nút bấm và đèn LED: Gồm có 1 nút bấm và 1 đèn LED hiển thị Có chức năng điều khiển và thông báo trạng thái hoạt động của máy in
- Cổng kết nối với thiết bị tính tiền, máy tính: Gồm
có 3 dây (Dây đất, dây Tx và dây Rx) sử dụng để kết nối máy in với thiết bị tính tiền hoặc máy tính
2.1 Vi điều khiển
Vi điều khiển thực hiện giao tiếp và điều khiển hoạt động của toàn thiết bị Từ các yêu cầu kĩ thuật của đề tài, tác giả lựa chọn vi điều khiển STM32F303CBT6, là vi điều khiển của hãng ST Microelectronic
STM32F303CBT6 có một số đặc điểm đáng lưu ý sau:
- Sử dụng nhân 32 bit Cortex M4
- Tần số hoạt động lên tới 72MHz
- Bộ nhớ flash 128 KB, bộ nhớ SRAM: 48 KB
- Dải điện áp hoạt động: từ 2,0V đến 3,6V
- Hỗ trợ thạch anh nội lên tới 8MHz
Trang 15- Hỗ trợ module thời gian thực
- Hỗ trợ các chế độ tiết kiệm năng lượng
- Hỗ trợ ADC và DAC 12 bit
- Hỗ trợ DMA với 12 kênh DMA độc lập
- Hỗ trợ các giao tiếp truyền thông bao gồm USART, SPI, I²C, CAN, USB
2.2 Module đầu in
Từ yêu cầu thiết kế, tác giả lựa chọn sử dụng module đầu in nhiệt có sẵn trên thị trường Module này đã được thiết kế để người sử dụng có thể điều khiển thông qua giao tiếp SPI
2.3 Bộ nhớ
Yều cầu của đề tài là máy in lưu trữ được 3 ảnh lô
gô phục vụ cho quá trình in Mỗi lô gô có kích thước tối
đa là rộng 384 điểm ảnh, cao 384 điểm ảnh, dung lượng tối đa là 18 KB Vì vậy chíp nhớ flash phải có khả năng lưu trữ tối thiểu là 54 KB Quá trình đọc dữ liệu khi in cần nhanh nên chíp nhớ flash phải có tốc độ cao Để đáp ứng các yêu cầu đọc tác giả quyết định chọn chíp nhớ flash S25FL216K của hãng Spansion
Trang 162.4 Mạch nguồn
Máy in hóa đơn có thể được sử dụng tại các cửa hàng hoặc kết nối với các thiết bị tính tiền trên phương tiện giao thông như xe taxi, xe bus Mạch nguồn trong thiết bị cũng phải được thiết kế để hạn chế các khả năng phát sinh nhiễu làm ảnh hưởng tới các thành phần trong máy in Ngoài ra, mạch nguồn cần phải được thiết kế để đáp ứng tốt năng lượng tiêu thụ của toàn mạch khi thực hiện quá trình in
2.5 Sơ đồ nguyên lý của các khối phần cứng
Đưa ra sơ đồ nguyên lý kết nối các khối của phần cứng máy in hóa đơn
- Sơ đồ nguyên lý khối vi điều khiển
- đồ nguyên lý khối đầu in
- Sơ đồ nguyên lý khối điều khiển động cơ của đầu
in
- Sơ đồ nguyên lý khối bộ nhớ
- Sơ đồ nguyên lý khối nút bấm và đèn LED
- Sơ đồ nguyên lý khối nguồn
2.6 Kết luận chương
Chương 2 đã đưa ra sơ đồ khối tổng quát của phần
Trang 17cứng máy in hóa đơn Lựa chọn linh kiện, module cho mỗi khối Tìm hiểu các đặc điểm, tính năng của mỗi khối và cuối cùng là đưa ra sơ đồ nguyên lý của các khối
Sang chương tiếp theo, sau khi đã xây dựng được phần cứng cho máy in ta sẽ đi vào phần thiết kế phần mềm cho máy in
Trang 18CHƯƠNG 3: THIẾT KẾ VÀ THỰC THI
PHẦN MỀM
3.1 Yêu cầu thiết kế
Những yêu cầu thiết kế phần mềm máy in hóa đơn:
- Vi điều khiển giao tiếp với module đầu in thông qua giao tiếp SPI để thực hiện in hóa đơn
- Vi điều khiển giao tiếp với thiết bị tính tiền hoặc máy tính thông qua giao tiếp USART để nhận dữ liệu hóa đơn cần in và nạp dữ liệu ảnh lô gô
- Vi điều khiển giao tiếp với chíp nhớ thông qua giao tiếp SPI, thực hiện lưu dữ liệu ảnh vào chíp nhớ khi nạp ảnh lô gô thông qua phần mềm trên máy tính và đọc
dữ liệu ảnh lô gô khi in hóa đơn
- Thông báo trạng thái hoạt động của máy in thông qua đèn LED
- Đẩy giấy hoặc in lại hóa đơn đã in trước đó khi nút bấm được bấm hoặc bấm và giữ trong 3 giây
- Lưu trữ các tham số hoạt động của máy in vào bộ nhớ của vi điều khiển, có thể cấu hình các tham số hoạt động từ phần mềm trên máy tính
Trang 193.2 Phần mềm cho thiết bị
Phần mềm cho thiết bị thực hiện các nhiệm vụ:
- Khởi động các thiết bị ngoại vi, khởi tạo giao tiếp SPI với module đầu in, khởi tạo giao tiếp USART giao tiếp với thiết bị tính tiền, khởi tạo giao tiếp SPI với chíp nhớ
- Đọc các tham số hoạt động trong bộ nhớ của vi điều khiển
- Đọc dữ liệu ảnh lô gô trong chíp nhớ
- Nhận dữ liệu từ thiết bị tính tiền và thực hiện in hóa đơn thanh toán
- Theo dõi trạng thái nút bấm và thực hiện chức năng tương ứng khi nút bấm được bấm hoặc bấm và giữ trong 3s
- Điều khiển đèn LED nhấp nháy theo trạng thái hoạt động của máy in
Hoạt động của phần mềm máy in bao gồm các tiến trình:
- Quá trình khởi động máy in
- Các tác vụ thực hiện theo chu kỳ và theo sự kiện
- Quá trình nạp ảnh từ máy tính
Trang 203.3 Các lệnh cấu hình máy in và điều khiển quá trình in
Thiết kế một số lệnh để phục vụ cho việc cấu hình chế độ hoạt động, kiểm tra hoạt động của máy in và điều khiển quá trình in
3.4 Giải thuật in dữ liệu văn bản và ảnh lô gô
Trong quá trình in, máy in in dữ liệu lên giấy theo từng hàng điểm ảnh với hai màu đen và trắng Máy in có thể in được 384 điểm ảnh theo bề ngang của giấy in ứng với 384 bit bằng 48 byte dữ liệu Để in dữ liệu văn bản hoặc ảnh lô gô cần chuyển đổi mỗi ký tự trong bảng chữ cái hoặc ảnh lô gô thành ma trận các điểm ảnh Quy định bit 0 biển diễn điểm màu trắng, bit 1 biểu diễn điểm màu đen ta sẽ có được ma trận các bit 0 và 1
3.5 Thiết kế giao thức truyền nhận dữ liệu ảnh lô
gô giữa phần mềm máy tính và máy in
Máy in sẽ lưu 3 ảnh trong bộ nhớ để phục vụ quá trình in Quy định 1, 2, 3 để phân biệt 3 ảnh lưu trong bộ nhớ máy in Việc chuyển đổi dữ liệu ảnh sẽ xử lý bởi phần mềm trên máy tính và dữ liệu nhận được sau khi xử lý