客戶常見問題解答
問題一:貴公司M104B與M104BPC均為UART串口模塊,M104B 9位數(shù)據(jù)格式,M104BPC 8位數(shù)據(jù)格式,請(qǐng)問這兩種通訊格式到底有什么不同?
解答:M104B 9位數(shù)據(jù)格式,實(shí)際上為串口標(biāo)準(zhǔn)協(xié)議中的11位異步傳輸模式:1位起始位,8位數(shù)據(jù)位,第9位地址/數(shù)據(jù)區(qū)分位,1位停止位。此種模式多用于多機(jī)通訊(如果用51核的單片機(jī)的話,則對(duì)應(yīng)串口模模式3),?該11位數(shù)據(jù)傳輸協(xié)議規(guī)定,在主機(jī)發(fā)送模塊地址的時(shí)候,第9位數(shù)據(jù)/地址區(qū)分位必須強(qiáng)制為1,而在發(fā)送地址之外的數(shù)據(jù)時(shí),第9位數(shù)據(jù)/地址區(qū)分位必須強(qiáng)制為0,主機(jī)接收從機(jī)數(shù)據(jù)的時(shí)候第九位數(shù)據(jù)/地址區(qū)分位必須強(qiáng)制為0.
因此,對(duì)于模塊M104B以PC機(jī)發(fā)送一條尋卡指令為例:地址00 00(默認(rèn))+數(shù)據(jù)03 20 00 23,在發(fā)送地址00 00的前必須將串口設(shè)置為:波特率19200, 1位起始位, 8位數(shù)據(jù)位,第9位為MARK(也即強(qiáng)制為1),1位停止位,并選擇HEX,然后(16進(jìn)制)發(fā)送,發(fā)送成功后,M104B模塊內(nèi)部會(huì)與自身的模塊地址00 00進(jìn)行對(duì)比,地址比對(duì)成功后,模塊內(nèi)部進(jìn)入接收數(shù)據(jù)狀態(tài),此時(shí)PC機(jī)需要更改串口設(shè)置為:波特率19200,1位起始位,8位數(shù)據(jù)位,第9位為SPACE(也即強(qiáng)制為0),1位停止位,然后HEX,(16進(jìn)制)發(fā)送數(shù)據(jù),03 20 00 23,M104B在接收到03 20 00 23后會(huì)對(duì)其解析,知道其為尋卡指令,然后返回正確的卡號(hào),此時(shí)準(zhǔn)備接收的PC機(jī)串口設(shè)置應(yīng)為:波特率19200,1位起始位,8位數(shù)據(jù)位,第9位為SPACE(也即強(qiáng)制為0),1位停止位(注:M104B連接PC機(jī)的時(shí)候需要用MAX232這樣的電平芯片進(jìn)行UART到RS232的電平轉(zhuǎn)換,否則會(huì)燒壞模塊串口。)
M104BPC 8位數(shù)據(jù)格式,實(shí)際上為串口協(xié)議中的10位異步傳輸模式:1位起始位,8位數(shù)據(jù)位,無奇偶校驗(yàn)位,1位停止位,因此,在該通訊模式下發(fā)送具體模塊指令數(shù)據(jù)之前僅需設(shè)置一次串口通訊協(xié)議即可,設(shè)置如下:波特率 19200,1位起始位,8位數(shù)據(jù)位,無奇偶校驗(yàn)位,1位停止
同樣以PC機(jī)發(fā)送一條連接指令為例:02 00 00 04 15 10 03 1C 03,在發(fā)送此數(shù)據(jù)之前僅需設(shè)置一下串口模式為1位起始位,8位數(shù)據(jù)位,無奇偶校驗(yàn)位,1位停止位即可(注:M104B連接PC機(jī)的時(shí)候需要用MAX232這樣的電平芯片進(jìn)行UART到RS232的電平轉(zhuǎn)換,否則會(huì)燒壞模塊串口。)
問題二:貴公司M104A與M104C在IIC通訊的時(shí)候,為什么總是通訊不成功,發(fā)送指令后看不到模塊的ACK確認(rèn)信號(hào)?
解答:出現(xiàn)此問題的原因大多為主處理器(與我們模塊的通訊的處理器)頻率較高所致,調(diào)整方法為加長(zhǎng)數(shù)據(jù)發(fā)送、接收時(shí)每一位數(shù)據(jù)間隔時(shí)間,等待模塊ACK信號(hào)時(shí),盡量多等待一些時(shí)間。